选择排序:实现输出数组的最小值以及次小值,实现数组的排序

来源:互联网 发布:台州市网络名师工作室 编辑:程序博客网 时间:2024/06/16 20:32
选择排序算法:
<span style="white-space:pre"></span>#define  N 10time_t ts;unsigned int data = time(&ts);srand(data);int a[N];for (size_t i = 0; i < N; i++){a[i] = rand() % 100 + 50;printf("%d   ", a[i]);}//选择排序int kmax = 0;//记录最大值下标for (size_t i = 0; i < N - 1; i++){kmax = i;//记录最大值下标for (size_t j = i + 1; j < N; j++)//第一轮比完第一个后  第一个就无需再比{if (a[j]>a[kmax]){kmax = j;//记录下标   赋值下标}}if (kmax != i){int tmp = a[i];a[i] = a[kmax];a[kmax] = tmp;}else{a[kmax] = a[i];}}printf("\n最小值:%d   次小值%d\n大到小排序后:\n", a[kmax], a[kmax - 1]);for (size_t i = 0; i < N; i++){printf("%d   ", a[i]);}
测试结果:

0 0
原创粉丝点击