資料結構之選擇排序

2021-10-09 17:09:27 字數 637 閱讀 7374

選擇排序應該是最容易實現的一種排序方法,其原理很簡單,依舊分為兩塊資料,左邊選取資料與右邊的資料進行比較,取最小值,比較到最後的位置後交換資料,確保每一次比較中最小值都會調整到左邊並有序增加,實質上就是取最小值的函式,只不過外層包了乙個迴圈。

void

selectionsort

(int arr,

int n)

swap

(arr, temp, i);}

}

穩定性分析:由於演算法中取最小值,因此倘若出現同樣的資料那麼j值就會取最後的那個元素放到序列中的最前面,因此打破了這個原生的順序,所以選擇排序是乙個不穩定的排序演算法空間複雜度分析:同樣,空間複雜度為o(1),屬於原地排序時間複雜度分析:最好情況下,有序序列,演算法的特性是每取乙個資料,然後與資料之後的每個資料都要比對取最小值,並沒有簡單路徑可以走,因此最好情況下的時間複雜度為o(n²),同理最壞情況下的時間複雜度為o(n²),因此平均時間複雜度為o(n²)

資料結構之選擇排序

基本方法 從0索引開始,依次和後面元素比較,小的往前放,第一次完畢,最小值出現在了最小索引處,第二次找到第二小的值。具體是如何實現呢?第一輪是0索引上的資料依次跟後面各個索引上的資料進行比較,直到遇到乙個比它小的資料,這時候,這個小的資料就替換掉0索引上原來的資料,接著這個替換掉的資料繼續跟它原來的...

資料結構之排序 選擇類排序

三 選擇類排序 基本思想 從待排數列中選出最小的記錄,放到已排好序的元素之後,直至所有元素排序完畢!1.直接選擇排序 初始時 有序區為空,無序區即待排數列 第一趟,從無序區中選出最小的,與無序區的第乙個元素交換。新的有序區多乙個元素,新的無序區少乙個元素,有序區在無序區之前!第二趟,define s...

資料結構 排序演算法之選擇排序

一 選擇排序 最差的排序演算法 在選擇排序中,假定我們需要公升序,因此在每次排序中,需要找到最大的元素,將其放在最後,在每一次的迴圈中,都是將最大的元素放在最後,因此對於資料較多的陣列,迴圈的次數將與陣列中元素的個數一致,因此,在對於這種陣列進行排序時,將十分的浪費時間。有關選擇排序的思路,如下所示...