#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int ctr, inner, outer, temp; /*定义整型变量,分别为ctr,inner,outer,didSwap,temp*/
int nums[
10]; /*定义整型数组,存放以下的随机数*/
int n_nums = 10;
srand(3); /*srand((unsigned)time(NULL)); /* 初始化随机数,使用srand(3)使出现结果固定 */
for (ctr=0; ctr < n_nums; ctr++)
{
nums[ctr] = rand() % 99 + 1; /*利用rand()函数产生随机数,%99表示产生随机数不超过三位数*/
}
printf("\nHere is the list befor the sort:"); /*排列之前*/
for (ctr=0; ctr < n_nums; ctr++)
{
printf("\n%d", nums[ctr]); /*在显示屏上输出由上面随机产生的数字,并每输出一个换行*/
}
/*以下才是重点,也是算法所在*/
for (outer = 0; outer < n_nums - 1; outer++) /*执行n_nums-1次外循环,目的是每一个数字都能与相邻的数字作大小比较*/
{
int didSwap = 0;
for (inner = outer; inner < n_nums; inner++) /*以下自己好好去体会吧!!慢慢悟~~~~*/
{
if (nums[inner] < nums[outer])
{
temp = nums[inner];
nums[inner] = nums[outer];
nums[outer] = temp;
didSwap = 1;
}
}
if (didSwap == 0)
{
break;
}
}
printf("\nHere is the list after it is sorted:"); /*排列之后*/
for (ctr=0; ctr < n_nums; ctr++)
{
printf("\n%d", nums[ctr]);
}
scanf("%*s");
return 0;
} /*俺测试通过,有兴趣的话也试试吧!!~~*/
这是选择排序法,定义整型数组时分配内存太大。数组的值是随机分配的。
[
本帖最后由 以中 于 2010-11-19 22:17 编辑 ]