顺序表的划分

void Swap(int& x,int& y){
 int temp = x;
 x = y;
 y = temp;
}
void quicksort(int array[], int left, int right) {//快速排序的函数(以中间的数为标准)
 int i, j, s;
 if(left < right) {
        s = array[(left+right)/2];
        i = left - 1;
        j = right + 1;
  while(1) {
            while(array[++i] < s) ; 
            while(array[--j] > s) ; 
            if(i >= j)
                break;
   Swap(array[i], array[j]);
        }
        quicksort(array, left, i-1);  
        quicksort(array, j+1, right); 
    }
}
void main() {
 int t;
// freopen("F:\in.txt","r",stdin);
 cin>>t;
 cout<<"The loop is:"<<t<<endl;
 while(t--){
  InputArray(disordernum);
  cout<<"The disorder numbers are:"<<endl;
  OutputArray(disordernum,num);
  quicksort(disordernum, 0, num-1);
  cout<<"The order numbers are:"<<endl;
  OutputArray(disordernum,num);
  cout<<endl;
 }

posted @ 2011-08-11 17:16  bcy  阅读(198)  评论(0编辑  收藏  举报