题目:
对一组随机数进行从小到大排序,比如5,3,5,2,8
排序后为8,5,5,3,2.
过程:
借助一个一维数组进行解决。其中数组的下标表示需要进行排序的数,与其相对应的值标志该数是否存在且存在几个。如:arr[8]=9;意思是说排序的一组数据中有9个8.
然后对这个数组进行轮询输出即可完成排序。
/***************************
为了简单说明 这里只进行五个
数的排序且数据大小为1-10。
编写环境:Code:Blocks
参考书籍:啊哈算法
***************************/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int arr[10],i,j,k;
//对数组进行初始化 如果排序的数超过10
//需要定义与其相对应的更大数组
for(i=0;i<10;i++)
arr[i]=0;
//输入数据
for(i=0;i<5;i++)
{
scanf("%d",&j);
arr[j]++;
}
//对数据进行轮询输出 这里是从小到大
for(i=0;i<10;i++)
{
for(j=1;j<=arr[i];j++)
printf("%d ",i);
}
printf("\n");
system("pause");
return 0;
}