upper越界了。
upper = size - 1;
upper = size - 1;

2006-08-27 23:51
2006-08-28 13:13

2006-08-28 13:44

怎么长的很像俺写的那个partition()函数呀。

2006-08-28 13:48
2006-08-28 13:55
2006-08-28 13:57

我用了两重循环,外层1000次,内层10000次,我的函数是45ms,sun学长的是69ms,哈哈。他这次傻了
主函数如下:
#include "time.h"
#include "conio.h"
int main()
{
int time1=0,time2;
int i;
unsigned long one,two;
one=clock();
for(;time1<1000;time1++)
for(time2=0;time2<10000;time2++)
{
int a[SIZE]={1,2,3,4,5,6,7,8,9,10};
sort(a,SIZE);
}
two=clock();
printf("%f\n",(two-one)/1000.);
getch();
}
测试是在wtc下运行的,我的电脑是win xp professional.T2300/1G

2006-08-28 14:03
说的是,可他非说两个for的效率就差些,哈哈。

2006-08-28 14:04

2006-08-28 14:57
把tem定义在){int tem=a[se];a[se]=a[i],a[i]=tem,se--;}中也是程序慢的另一个原因,这样虽然便于数据的隐蔽.但tem空间频繁的申请和释放(每交换一次数据,就要申请一次空间),必然浪费大量的时间.本人觉得可以把int tem放在函数的开始.

2006-08-28 15:34