用Python實現排序算法——選擇排序

     今天學習的是選擇排序的實現。實現的原理是把當前位置的元素和其它未排序的所有元素比較,滿足條件則把索引值記錄下來,每次遍歷都能選出一個未排序的元素中最大(小)的一個。實現的小技巧是每次比較之後暫時只把索引記錄下來,當前值和餘下所有未排序的元素都比較完之後再執行交換。

def selectionSort(sort_list):
    list_length = len(sort_list)
    if list_length < 2:
        return sort_list
    for i in range (list_length):
        minIndex = i
        for j in range(i+1,list_length):
            if sort_list[j] < sort_list[i]:
                minIndex = j
        if minIndex != i :
            sort_list[i],sort_list[minIndex] = sort_list[minIndex],sort_list[i]
    return sort_list

第10行的判斷語句還是很有必要的,比如當前元素是未排序元素中最大(小)的一個,那麼此時是不需要交換位置的,如果此時還執行一次交換,一是消耗資源,效率低,判斷語句的資源消耗比賦值語句較低;二是有可能引起異常。

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