選擇排序C 實現

2021-07-11 16:57:21 字數 590 閱讀 2490

演算法描述:

首先找到陣列中最小的元素,將它與陣列第乙個元素進行交換,接著在剩下的元素中找的最小的元素與陣列第二個元素進行交換,如此往復,直到整個陣列都排序。

下面給出整型陣列的實現,其他複雜型別只需實現自定義的比較函式即可:

#include #include using namespace std;

const int num=20;

void exch(int* s,int a,int b)

int main()

{int array[num];

int min=0;

srand(2);//初始化隨機數

對於長度為n的陣列,選擇排序需要大概n^2/2次比較和n次比較。

選擇排序有兩個鮮明的特點:

1:執行與輸入無關(無論輸入的陣列是逆序的,隨機的還是有序的所需時間幾乎一樣)。

2:資料移動最少(與其他排序演算法比較而言)。

C 實現選擇排序

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

c 實現選擇排序

說明 是我親自碼的,除錯通過的,中有演算法思想和詳細的注釋,一目了然。專案已經上傳到我的github 專案中還有另外得九種排序演算法的c 實現 以及其思想。1 選擇排序 2 插入排序 3 氣泡排序 4 希爾排序 5.1 歸併排序遞迴實現 5.2 歸併排序非遞迴實現 6.1 快速排序遞迴實現 6.2 ...

C 實現選擇排序

選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...