排序演算法—選擇排序演算法分析與實現(Python)
阿新 • • 發佈:2019-02-20
December 23, 2015 12:31 PM
思想
選擇排序的思想非常直接,不是要排序麼?那好,我就從所有序列中先找到最小的,然後放到第一個位置。之後再看剩餘元素中最小的,放到第二個位置……以此類推,就可以完成整個的排序工作了。可以很清楚的發現,選擇排序是固定位置,找元素。相比於插入排序的固定元素找位置,是兩種思維方式。不過條條大路通羅馬,兩者的目的是一樣的。
簡單排序處理流程:
( 1 )從待排序序列中,找到關鍵字最小的元素;
( 2 )如果最小元素不是待排序序列的第一個元素,將其和第一個元素互換;
( 3 )從餘下的 N - 1 個元素中,找出關鍵字最小的元素,重複( 1 )、( 2 )步,直到排序結束。
#SeleteSort.py
#王淵
#2015.12.21
#Email:[email protected]
from pylab import *
def SeleteSort(data):
length = data.__len__() #獲取資料長度
idx = True #標記依次遍歷是否有資料交換,如果沒有,排序完成
for i in range(length):
idx = i
for j in range(i,length):
if(data[j]<data[idx]): #如果當前值小於下一個值,記錄索引
idx = j
data[i],data[idx] = data[idx],data[i] #交換順序,一次交換
return data
data = array([48,1,16,62,73,88,24,59,99,0,35])
print("The original data is : ", data)
data = SeleteSort(data)
print("The result of sorted data is : " , data)
執行結果:
The original data is : [48 1 16 62 73 88 24 59 99 0 35]
The result of sorted data is : [ 0 1 16 24 35 48 59 62 73 88 99]