十大排序之選擇排序 排序演算法 C語言實現

2021-10-06 14:43:39 字數 718 閱讀 7319

選擇排序(selection sort)是一種簡單直觀的排序演算法。它的工作原理是:第一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,然後再從剩餘的未排序元素中尋找到最小(大)元素,然後放到已排序的序列的末尾。以此類推,直到全部待排序的資料元素的個數為零。選擇排序是不穩定的排序方法。

選擇排序是不穩定的排序演算法,最好時間複雜度o(n^2)

最壞時間複雜度也是o(n^2)

選擇排序大概思路就是首先從使用者給的無序陣列中找出乙個最小的(預設為公升序排列),放到最小陣列下標,然後最小陣列下標+1,然後再從剩餘的無序陣列中找出乙個元素,以此類推。

大概思路就是這樣

我們來看一下**實現

int main()

void

xuanze_sort

(int a[

],int n)}

int tmp = a[index]

; a[index]

= a[i]

; a[i]

= tmp;

}}

實現結果如下

十大排序演算法之選擇排序

選擇排序也是一種o n 2 時間複雜度的排序演算法,選擇排序是每一次迴圈都將找到最小值,依次將最小值 次小值分別從左至右進行排序。以下是具體實現過程,其中使用的工具類這篇部落格已經給出,import cn.zjut.util.sorttestutil public class selectsort ...

十大排序演算法 選擇排序

原理 第一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後再從剩餘的未排序元素中尋找到最小 大 元素,然後放到已排序的序列的末尾。以此類推,直到全部待排序的資料元素的個數為零。工具類public class utils 用於交換陣列兩個下標的位置 static void...

C 實現 十大排序演算法之選擇排序

給定乙個待排序陣列,找到陣列中最小的那個元素 如果最小元素不是待排序陣列的第乙個元素,則將其和第乙個元素互換 在剩下的元素中,重複1 2過程,直到排序完成。根據原理設計演算法 class program 當第二個for迴圈完成時,array min 中儲存的就是當前最小元素 將array min 與...