(1)演算法思路
第一趟,從n 個記錄中找出關鍵碼最小的記錄與第乙個記錄交換。
第二趟,從第二個記錄開始的n-1 個記錄中再選出關鍵碼最小的記錄與第二個記錄交換。
以此類推…
第i 趟,則從第i 個記錄開始的n-i+1 個記錄中選出關鍵碼最小的記錄與第i 個記錄交換。
直到整個序列按關鍵碼有序。
(2)演算法舉例
(3)特點
交換移動資料次數很少。
演算法時間複雜度為o(n2)。
簡單選擇排序效能優於氣泡排序。
(4)實現**
public static void selectsort(int arr)
}if(minindex !=i)}}
資料結構學習筆記(0X06) 排序
1.氣泡排序 思路 氣泡排序只會操作相鄰的兩個資料。每次冒泡操作都會對相鄰的兩個元素進行比較,看是否滿足大小關係要求。如果不滿足就讓它倆互換。一次冒泡會讓至少乙個元素移動到它應該在的位置,重複 n 次,就完成了 n 個資料的排序工作。func bubblesort arr int flag fals...
資料結構與演算法(九)排序
演算法 時間複雜度 平均 時間複雜度 最壞 時間複雜度 最好 空間複雜度 穩定性氣泡排序 o n 2 o n 2 o n o 1 穩定選擇排序 o n 2 o n 2 o n 2 o 1 不穩定插入排序 o n 2 o n 2 o n o 1 穩定希爾排序 o nlogn o n 2 o n o 1...
資料結構與演算法 四 排序
def heap sort li def heapfly li start len li 2 1 獲取最後乙個葉子節點的父節點 for nod in range start,1,1 left 2 nod 1 right min left 1,len li 1 temp left if li left...