在网上找了一个,例如插入排序,快速排序,都是如些。这样做的理由是什么?为什么把数据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