演算法與資料結構學習筆記(14) 排序之簡單選擇排序

2021-09-26 05:37:06 字數 473 閱讀 4810

(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...