左程云算法與數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)班
簡單選擇排序
算法思想
簡單選擇排序的基本思想:比較(已報名左神算法 底部評)+交換。
從待排序序列中,找到關(guān)鍵字最小的元素;
如果最小元素不是待排序序列的第一個元素,將其和第一個元素互換;
從余下的 N - 1 個元素中,找出關(guān)鍵字最小的元素,重復(fù)(1)、(2)步,直到排序結(jié)束。
因此我們可以發(fā)現(xiàn),簡單選擇排序也是通過兩層循環(huán)實現(xiàn)。
第一層循環(huán):依次遍歷序列當(dāng)中的每一個元素
第二層循環(huán):將遍歷得到的當(dāng)前元素依次與余下的元素進行比較,符合最小元素的條件,則交換。
代碼實現(xiàn)
# 簡單選擇排序def select_sort(L):#依次遍歷序列中的每一個元素
? ?for x in range(0,len(L)):#將當(dāng)前位置的元素定義此輪循環(huán)當(dāng)中的最小值
? ? ? ?minimum = L[x]#將該元素與剩下的元素依次比較尋找最小元素
? ? ? ?for i in range(x+1,len(L)): ? ? ? ? ? ?if L[i] < minimum:
? ? ? ? ? ? ? ?temp = L[i];
? ? ? ? ? ? ? ?L[i] = minimum;
? ? ? ? ? ? ? ?minimum = temp#將比較后得到的真正的最小值賦值給當(dāng)前位置
? ? ? ?L[x] = minimum
標(biāo)簽: