读书人

小量数据排序

发布时间: 2013-07-01 12:33:04 作者: rapoo

少量数据排序
本帖最后由 pqcst 于 2013-05-23 10:16:53 编辑 7元素数组[a1,a1,a3,a4,a5,b1,b2],元素各不相同,都在1~100之间。
其中a1>a2>a3>a4>a5.

请问采用何种方法排序效率最高?因为这个排序过程要执行几百万次,时间效率上的一点改进都很重要。


另,对于需要分层遍历的问题,除了写循环嵌套,有其他什么代替办法吗?谢谢! 排序
[解决办法]
前5个有序,后两个二分插入就可以了
[解决办法]
既然知道五个有序,用链表,把有序的从大到小插入,再把剩下 的两个插入进去
[解决办法]
这么少量的数据。。肯定越简单的方法越好。。由于前五个有序,我觉得可以用插入法。。而且这里你可以把后两个数的插入位置都找好之后再一起插入,这样可以减少一次数据移动的时间。。
[解决办法]

void better_bubble_sort(int *D, int n) {
int b,i,m,t;

b=n-1;
while (b) {
m=0;
for (i=0;i<b;i++) {
if (D[i]<D[i+1]) {t=D[i];D[i]=D[i+1];D[i+1]=t;m=i;}
}
b=m;
}
}

读书人网 >C语言

热点推荐