Python選擇排序

import numpy as np


def sort(arr):
    for i in range(len(arr) - 1):
        minIndex = i
        minValue = arr[i]
        b = False

        for j in range(minIndex + 1, len(arr)):
            if (minValue > arr[j]):
                minValue = arr[j]
                minIndex = j
                b = True

        # 交換。
        if (b):
            # arr[minIndex], arr[i] = arr[i], minValue
            # 或者使用常規的交換函數。
            swap(arr, i, minIndex)


def swap(arr, i, j):
    temp = arr[i]
    arr[i] = arr[j]
    arr[j] = temp


if __name__ == '__main__':
    # 生成隨機數組值。生成size個隨機數。
    arr = np.random.randint(low=0, high=10, size=15)

    print("原始未排序數組:")
    print(arr)

    # 排序。
    sort(arr)

    print("排序後結果:")
    print(arr)

 

輸出:

原始未排序數組:
[5 7 0 7 4 2 3 7 2 5 6 9 8 1 5]
排序後結果:
[0 1 2 2 3 4 5 5 5 6 7 7 7 8 9]

 

發佈了1033 篇原創文章 · 獲贊 999 · 訪問量 340萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章