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

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

算法分析:时间复杂度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 }

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。