选择排序
选择排序是一种简单直观的排序算法,其核心思想是:遍历数组,从未排序的序列中找到最小元素,将其放到已排序序列的末尾。
时间复杂度:O(n^2)
稳定性 :不稳定
1: /*
2: * @brief selection sort
3: */
4: void
5: selection_sort(int a[], int n)
6: {
7: int i, j, min, tmp;
8:
9: for (i = 0; i < n - 1; ++i) {
10: min = i;
11: for (j = i+1; j < n; ++j) {
12: if (a[j] < a[min]) {
13: min = j;
14: }
15: }
16: if (min != i) {
17: tmp = a[min];
18: a[min] = a[i];
19: a[i] = tmp;
20: }
21: }
22: }