请大侠们解释下?
#include<iostream.h>
#include<windows.h>
#include<stdio.h>
#include <time.h>
#define NUM 100000
int Num[NUM];
void QuickSort(int left,int right,int FlagIndex)//,int SortNum[])
{
if(left<right)
{
int i=left,j=right,Flag=Num[FlagIndex];
while(i!=j)
{
while(j!=i)
{
if(Flag>Num[j])
{
Num[FlagIndex]=Num[j];
Num[j]=Flag;
FlagIndex=j;
i++;
break;
}
j--;
}
while(i!=j)
{
if(Flag<Num[i])
{
Num[FlagIndex]=Num[i];
Num[i]=Flag;
FlagIndex=i;
j--;
break;
}
i++;
}
}
QuickSort(left,i-1,left);//,SortNum);
QuickSort(i+1,right,i+1);//,SortNum);
}
return;
}
void main()
{
double dwOldTime,dwElapsed;
srand((unsigned)time(NULL));
cout<<"The random numbers are as follows:";
for(int i=0;i<NUM;i++)
{
Num[i]=rand()%100;
cout<<Num[i]<<" ";
}
cout<<endl<<endl<<endl;
dwOldTime=GetTickCount();
QuickSort(0,NUM-1,0); //,Num);
dwElapsed=GetTickCount()-dwOldTime;
cout<<"The sorted numbers are as follow:"<<endl;
for(i=0;i<NUM;i++)
cout<<Num[i]<<" ";
cout<<endl;
printf("It took %f to sort!\n",dwElapsed);
return;
}
以上代码是我写的用于测试快速排序算法的效率:随机生成N个数,放入数组,进行快速排序,显示出排序消耗的时间。
起初我使用局部变量数组Num[]来存放随机数字,发现超过100000后会有栈溢出,后来改进为使用全局数组。
但是当我把随机数的个数N设置为1000000(1百万个)时,发现运行不出结果,是不是递归深度超出最大深度的原因?
...全文
相关推荐
晴窗中文大侠下载 晴窗中文大侠 v6.0.9.109
晴窗中文大侠的出现,恰如其分地解决了这一问题。它不仅提供了一种中文界面,更深入浅出地解释了各类专业术语和功能,让用户能够在短时间内迅速理解和掌握软件操作。软件的核心功能在于翻译和解析英文软件界面。
晴窗大侠五
"晴窗大侠五",或者更完整地称为"晴窗中文大侠5.0",是一款专为中文用户设计的高效文本处理软件。
晴窗大侠 绿色版
晴窗中文大侠是一款专业汉化工具,适用于CG类软件的本地化处理,具有良好的兼容性和稳定性。该绿色版无需安装,集成于2010年修正版本中,可直接运行,适合需要快速部署和使用的场景。
电脑软件鼠标连点器鼠大侠1.20 单文件版勿升级.rar
鼠大侠作为一款知名的鼠标连点器,其1.20版本在用户群体中具有一定的知名度和口碑。鼠大侠1.20版的特性可能包括以下几点:1.
U大侠U盘安装Win7系统教程.docx
U盘将被用来制作启动盘,因此请确保其上的所有重要数据已备份。2. **软件工具**:下载并安装U大侠U盘启动盘制作工具。这个工具可以帮助我们将U盘转化为一个能够启动电脑并安装系统的设备。3.


