december 23, 2015 12:31 pm
思想 選擇排序的思想非常直接,不是要排序麼?那好,我就從所有序列中先找到最小的,然後放到第乙個位置。之後再看剩餘元素中最小的,放到第二個位置……以此類推,就可以完成整個的排序工作了。可以很清楚的發現,選擇排序是固定位置,找元素。相比於插入排序的固定元素找位置,是兩種思維方式。不過條條大路通羅馬,兩者的目的是一樣的。
簡單排序處理流程:
( 1 )從待排序序列中,找到關鍵字最小的元素;
( 2 )如果最小元素不是待排序序列的第乙個元素,將其和第乙個元素互換;
( 3 )從餘下的 n - 1 個元素中,找出關鍵字最小的元素,重複( 1 )、( 2 )步,直到排序結束。
#王淵#2015.12.21
#email:[email protected]
from pylab import *
defseletesort
(data):
length = data.__len__() #獲取資料長度
idx = true
#標記依次遍歷是否有資料交換,如果沒有,排序完成
for i in range(length):
idx = i
for j in range(i,length):
if(data[j]#如果當前值小於下乙個值,記錄索引
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 : [48116
6273
8824
5999
035]
the result of sorted data is : [ 0116
2435
4859
6273
8899]
演算法 選擇排序,例項分析選擇排序演算法
選擇排序,將乙個序列看做兩個部分,前面有序,後面無序,每次在後面的無序序列中,選擇乙個最小的元素,交換到前面有序序列的末尾,直到無序序列全部完成交換,即可完成排序 選擇排序是不穩定的排序演算法 有乙個序列 5,2,0,1,3,1,4 第一趟排序 第二趟排序 此時我們看到,經過兩趟排序,前面兩個元素 ...
排序演算法 選擇排序演算法實現
1 時間複雜度 o n 2 2 選擇排序主要操作是交換和比較 交換次數在0 n 1 總比較次數 n n 1 n 2 n 3 1 n n 1 2 因為交換需要的cpu時間 比較需要的cpu時間 當n比較少時,選擇比冒泡快,減少了不必要的交換,每次交換僅僅是最大值或者最小值與序列起始位置進行狡猾。3 演...
排序演算法 簡單選擇排序演算法實現及分析
簡單選擇排序 selection sort 就是通過n 1次關鍵字排序之間的比較,從n i 1個記錄中選擇關鍵字最小的記錄,並和第i 1 i n 記錄交換。這是一般書上的定義。實際上選擇排序,就是每一輪選者乙個最值出來,然後在剩下的資料中又選擇乙個最值出來,直到資料被選擇完畢。這就是所謂的簡單選擇排...