http://baike.baidu.com/view/547263.htm

#include <stdio.h>
#include <stdlib.h>
void select_sort(int *a, int n)
{
register int i, j, min, t;
for( i = 0; i < n - 1; i ++)
{
min = i;
for( j = i +1; j < n; j ++) //查找最小值
if( a[min] > a[j]) min = j;
if( min != i) //交换
{
t = a[min];
a[min] = a[i];
a[i] = t;
}
}
}
void main()
{
int i;
int num_array[20];
srand(0);
printf("\r\n init: ");
for(i = 0; i < 20; i++) {
num_array[i] = rand()%1000;
printf("%d ", num_array[i]);
}
select_sort(num_array, 20);
printf("\r\n select sort: ");
for(i = 0; i < 20; i++) {
printf("%d ", num_array[i]);
}
}
本文介绍了一个简单的选择排序算法实现过程,使用 C 语言编写。该算法通过遍历数组找到未排序部分的最小值并将其与当前位置元素进行交换,从而逐步完成整个数组的排序。
1488

被折叠的 条评论
为什么被折叠?



