当前位置: 代码迷 >> 汇编语言 >> 新人求解一到快排算法遇到的有关问题
  详细解决方案

新人求解一到快排算法遇到的有关问题

热度:181   发布时间:2016-05-02 04:36:54.0
新人求解一到快排算法遇到的问题
编译结果有问题,但是我不知道到底哪里出问题。只觉得split部分有问题。求指点求改正。下面放代码及运行结果

#include<iostream.h>
int split(int A[],int low,int high)
{
  int i=low;
  int t;
  for(int j=i+1;j<=high;j++)
  if(A[j]<=A[low]){
  i++;
  if(i!=j)
  t=A[i],A[i]=A[j],A[j]=t;
  }
     t=A[low],A[low]=A[i],A[i]=A[low];
    return i;
}
void quicksort(int A[],int low,int high)
{
if(low<high)
{
   int w;
   w=split(A,low,high);
   quicksort(A,low,w-1);
   quicksort(A,w+1,high);
}
}
void main()
{
int A[]={NULL,4,6,3,1,8,7,2,5};
const int N=8;
for(int i=1;i<=N;i++)

cout<<A[i]<<" ";
     cout<<endl;
 quicksort(A,1,N);
 for(i=1;i<=N;i++)
 cout<<A[i]<<" ";
 cout<<endl;
}



运行出来错误结果的图

------解决方案--------------------
算法,有专门的板块吧:http://bbs.csdn.net/forums/ST_Arithmetic
快速排序,这个是很成熟很固定的了,网上有大把的各种语言的现成的代码可以参考:http://baike.baidu.com/view/115472.htm
  相关解决方案