soufal's Home.

LinuxC编程一站式学习中_选择排序

Word count: 247 / Reading time: 1 min
2018/06/29 Share

Linux C/C++编程一站式学习中选择排序

选择排序

实现选择排序(Selection Sort)算法:第一次从数组 a[0..LEN-1] 中找出最小元素交换到 a[0] 的位置,第二次从数组 a[1..LEN-1] 中找出最小元素交换到 a[1] 的位置,依此类推。排序过程举例如下:

10, 5, 2, 4, 7
2, 5, 10, 4, 7
2, 4, 10, 5, 7
2, 4, 5, 10, 7
2, 4, 5, 7, 10

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>

#define LEN 5
int a[LEN] = {10, 5, 2, 4, 7};

void selection_sort(void)
{
int i,j,min,temp;
for(j = 0;j < LEN; j++) {
printf("%d, %d, %d, %d,%d\n",a[0], a[1], a[2], a[3], a[4]);
min = a[j];
for(i = j+1;i < LEN; i++){
if( min >= a[i])
{min = a[i];
temp = i;
}
}
printf("%d\n",temp);
a[temp] = a[j];
a[j] = min;



// printf("%d, %d, %d, %d,%d\n",a[0],a[1],a[2],a[3],a[4]);
}
}
int main(void)
{
selection_sort();
return 0;
}

结果截图

CATALOG
  1. 1. Linux C/C++编程一站式学习中选择排序
    1. 1.1. 选择排序
      1. 1.1.1. 代码