選擇排序

一、什麼是選擇排序

    選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。 選擇排序是不穩定的排序方法。


二、選擇排序的思想

  • 每次循環時假定最前面的值時是最大或最小的

  • 然後找到後面值中最大或最小值與之交換

  • 選擇排序的時間複雜度也是O(n^2),但是由於交換次數比冒泡排序要少,所以比冒泡排序快


三、Python代碼實現

import random
import time

def selection_sort(array):
    length = len(array)
    for i in range(0, length-1):
        min = i
        for j in range(i+1, length):
            if array[min] > array[j]:
                min = j
        array[i], array[min] = array[min], array[i]
    return array

if __name__ == "__main__":
    start_time = time.time()

    array = []
    for i in range(1000):
        array.append(random.randrange(10000))
    print(array)

    new_array = selection_sort(array)
    print(new_array)

    end_time = time.time()
    print(end_time-start_time)

327578f2132e395356213b5547c9aeff.png

    最外層循環時,先假定i當前值時最小的,然後內循環遍歷剩餘值,當發現比i小的值時,先不交換,僅僅把min的值換成較小的值的下標,等內循環結束時,再交換i與min下標的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章