在网上找了一个,例如插入排序,快速排序,都是如些。这样做的理由是什么?为什么把数据0考虑进去排序?
代码如下。
//语言:c++
//目的:比较两个排序算法的时间复杂度
//原代码:
//Insertionsort
int *Insertionsort(int *A,int n)
{
int j,item,i;
for(j=2;j<=n;j++)
{
item=A[j];
i=j-1;
while (item<A[i])
{
A[i+1]=A[i];
i--;
}
A[i+1]=item;
}
return A;
}//insertionsort//quicksort
int Quickpass(int R[],int low,int high)
{
int down,up; //initialize flag
down=low;up=high;R[0]=R[low]; //put bench record into R[0]
while (down<up)
{
while((down<up)&&(R[up]>=R[0])) //scan from right to left
up--;
if(down<up)
R[down++]=R[up];
while((down<up)&&(R[down]<=R[0]))//scan from left to right
down++;
if(down<up)
R[up--]=R[down]; }
R[down]=R[0];
return down;
}//one time of sortion
int *Quicksort(int R[],int low,int high)
{
int mid;
if (low<high)
{
mid=Quickpass(R,low,high);
Quicksort(R,low,mid-1);
Quicksort(R,mid+1,high);
}
return R;}//quicksort
代码如下。
//语言:c++
//目的:比较两个排序算法的时间复杂度
//原代码:
//Insertionsort
int *Insertionsort(int *A,int n)
{
int j,item,i;
for(j=2;j<=n;j++)
{
item=A[j];
i=j-1;
while (item<A[i])
{
A[i+1]=A[i];
i--;
}
A[i+1]=item;
}
return A;
}//insertionsort//quicksort
int Quickpass(int R[],int low,int high)
{
int down,up; //initialize flag
down=low;up=high;R[0]=R[low]; //put bench record into R[0]
while (down<up)
{
while((down<up)&&(R[up]>=R[0])) //scan from right to left
up--;
if(down<up)
R[down++]=R[up];
while((down<up)&&(R[down]<=R[0]))//scan from left to right
down++;
if(down<up)
R[up--]=R[down]; }
R[down]=R[0];
return down;
}//one time of sortion
int *Quicksort(int R[],int low,int high)
{
int mid;
if (low<high)
{
mid=Quickpass(R,low,high);
Quicksort(R,low,mid-1);
Quicksort(R,mid+1,high);
}
return R;}//quicksort
解决方案 »
- 求高手讲解双缓冲绘图
- VC2005,怎么看Release版的反汇编?
- 请教底层协议问题
- 一个简单的socket多线程程序,严重问题!请大侠们帮忙
- **** 如何用VC(最好用API),实现类似于 outlook express 打开邮件,同一界面上不同语言、字符集的显示问题!****
- 请看以下fread的问题,立刻给分
- 关于c++的语法问题
- AsyncSocket的菜鸟级问题
- 编辑框默认值问题!.SetWindowsText("0")
- 如果执行accept函数返回10035(WSAEWOULDBLOCK)错误时应该怎样处理啊?
- 电脑启动很慢的问题
- 我的程序加了一个activeX控件,编译之后直接运行程序没有错,但用vc7.0 IDE运行就出错,怎么回事呢?
一般算法描述时,序号都是从1开始的,而c/c++的数组序号却是从0开始的。换算麻烦,
就不用了序号0了。
或者有些语言的序号是1开始的,再用c/c++,就不习惯了吧。序号0没用上,就做了过度元素。