選擇排序是乙個穩定排序演算法嗎?

2021-10-07 13:20:16 字數 699 閱讀 9318

選擇排序是一種簡單直觀的排序演算法,無論什麼資料都是o(n^2)的時間複雜度。所以用到它的時候,資料規模越小越好。

從陣列中找出最小的那個元素,然後與最開始的元素交換位置

忽略第一步中找到的最小元素,重複執行步驟1

}swap(i, minindex); // 將最小元素交換到開始位置

}也可以挑選出最大元素,與最後的元素的交換,實現**如下:

for (int end = array.length - 1; end > 0; end--) 

}swap(maxindex, end); // 將最大元素交換到最後位置

}

選擇排序的交換次數要遠遠少於氣泡排序,平均效能優於氣泡排序。

最好、最壞、平均時間複雜度:o(n^2)。

空間複雜度:o(1)。

選擇排序是乙個不穩定的排序演算法,看下面的例子:

選擇排序每次迴圈中都需要找出最小(大)的元素與開始(最後)位置的元素進行交換,可以使用大頂堆來實現查詢最大元素,可以將查詢元素的時間複雜度由o(n)降低為o(logn),其實就是堆排序。

選擇排序演算法 對乙個陣列進行選擇排序

include include include define number 10 number為陣列的大小 void selectionsort int int void display int int int main srand time null printf 排序前 display num,...

排序演算法(一) 選擇排序

一 原理 每一趟排序 例如第 i 趟,其中 i 0,1,n 2 在後面 n i 個待排記錄中選出關鍵字最小的元素 下標為 index 與第 i 個記錄交換,直至全部待排序的資料元素排完。由於排到 n 1 趟時,前 n 1 個元素已然有序,則剩餘的乙個元素自然也有序,因此一共需要排 n 1 趟 外層迴...

希爾排序是一種穩定的排序演算法 排序演算法之希爾排序

希爾排序是希爾 donald shell 於1959年提出的一種排序演算法。希爾排序也是一種插入排序,它是簡單插入排序經過改進之後的乙個更高效的版本,也稱為縮小增量排序,同時該演算法是衝破o n2 的第一批演算法之一。簡單插入排序很循規蹈矩,不管陣列分布是怎麼樣的,依然一步一步的對元素進行比較,移動...