選擇排序詳細解說

2021-10-19 03:00:54 字數 763 閱讀 7996

選擇排序是每一次從無序區間選出最大(或最小)的乙個元素,存放在無序區間的bound位置,直到全部待排序的資料元

素排完 。

本文章中以公升序為例,讓已排序的序列中的最後乙個元素為bound,讓cur初始值為bound+1(就是未排序的第乙個元素),然後和bound位置的值進行比較,如果bound位置的元素大於cur位置的元素,就交換順序,再讓cur往後走,如果遇到比bound位置小的元素就繼續交換,直到走到陣列末尾,就完成了第一次排序,依次類推讓bound+1,繼續上述過程,就可以完成整個排序過程。(類似於打擂台,bound就是擂台上的數)

(按照圖上的步驟以此類推,可完成第四次排序……第n次排序,直到排序完成)

public

static

void

selectsertsort

(int

array)}}

}private

static

void

exchange

(int

array,

int bound,

int cur)

時間複雜度:o(n^2)

空間複雜度:

o(1)

穩定性:

不穩定排序

希爾排序詳細解說

了解了插入排序後,希爾排序就可以迎刃而解了 可以將整個陣列分為gap組,這裡的gap array.length 2,然後進行插入排序,再將gap 2,再次進行插入排序,直到gap 1的時候,就可以得到最終的已排序陣列 1.資料量少的時候,速度快 2.資料接近有序的時候,速度快 時間複雜度 最好 o ...

詳細解說 STL 排序 Sort

從效率上看,以下幾種sort演算法的是乙個排序,效率由高到低 耗時由小變大 partion stable partition nth element partial sort sort stable sort 若需對vector,string,deque,或 array容器進行全排序,你可選擇sor...

歸併排序詳細解說

歸併排序 是建立在歸併操作上的一種有效的排序演算法,該演算法是採用分治法的乙個非常典型的應用。將已有序的子串行合併,得到完全有序的序列 即先使每個子串行有序,再使 子串行段間有序。1 遞迴方法 有兩個重要的特點,可以適用於外部排序 資料在磁碟上 也可以適用於鍊錶排序 希爾,堆排序,快速排序依賴隨機訪...