首页 > 代码库 > 【选择排序】简单选择排序

【选择排序】简单选择排序

思想:每经过一趟比较就找出一个最小值,与待排序列最前面的位置互换即可。

算法分析:时间复杂度O(n2);稳定性:不稳定

 1 #include <stdio.h> 2  3 void SelectSort(int a[], int len) 4 { 5     int i, j, k, tmp; 6     for (i = 0; i < len - 1; i++) 7     { 8         k = i; 9         for (j = i + 1; j < len; j++)10         {11             if (a[j] < a[k])12             {13                 k = j;14             }15         }16         if (i != k)17         {18             tmp = a[i];19             a[i] = a[k];20             a[k] = tmp;21         }22     }23 }24 25 int main(void)26 {27     int a[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};28     SelectSort(a, 11);29 30     for (int i = 0; i < sizeof(a) / sizeof(int); i++)31     {32         printf("%d ", a[i]);33     }34     printf("\n");35 36     return 0;37 }

【选择排序】简单选择排序