upper越界了。
upper = size - 1;
upper = size - 1;
怎么长的很像俺写的那个partition()函数呀。
我用了两重循环,外层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
把tem定义在){int tem=a[se];a[se]=a[i],a[i]=tem,se--;}中也是程序慢的另一个原因,这样虽然便于数据的隐蔽.但tem空间频繁的申请和释放(每交换一次数据,就要申请一次空间),必然浪费大量的时间.本人觉得可以把int tem放在函数的开始.