演算法描述:
首先找到陣列中最小的元素,將它與陣列第乙個元素進行交換,接著在剩下的元素中找的最小的元素與陣列第二個元素進行交換,如此往復,直到整個陣列都排序。
下面給出整型陣列的實現,其他複雜型別只需實現自定義的比較函式即可:
#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 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...