1. 程式人生 > >用Python實現八大排序演算法--直接選擇排序

用Python實現八大排序演算法--直接選擇排序

一、選擇排序概述

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

演算法基本思想:
n個記錄的檔案的直接選擇排序可經過n-1趟直接選擇排序得到有序結果
演算法分析:
(1) 關鍵字比較次數
在第i趟排序中選出最小關鍵字的記錄,需要做n-i次比較,因此總的比較次數為n(n-1)/2=o(n^2)
(2) 記錄移動次數
初始檔案為正序時,移動次數為0
檔案初態為反序時,每趟排序均要執行交換操作,總的移動次數最大值為3(n-1)
平均時間複雜度為 O(n^2)


(3)穩定性:不穩定

二、Python實現

def SelectSort(lists):
    count=len(lists)
    for i in range(0,count):
        for j in range(i+1, count):
            if lists[i] > lists[j]:
                lists[i] , lists[j] = lists[j] , lists[i]
            print("===========")
            print(i,j)
            print(lists)

if
__name__ == "__main__": lists = [3, 5, 4, 2, 1, 6] print(lists) SelectSort(lists)

執行結果如下所示
這裡寫圖片描述

這裡寫圖片描述