用数组实现快速排序(C++)

快速排序是分而治之法的一种排序方法,快速排序将n个元素分为三段。left段,right段和middle段,中间仅有一个元素。我叫做关键值。左边的元素都不大于中间段,右边的元素都不小于中间段。因此可以对left与right段进行单独的排序。
完整代码实现如下:

#include  
using namespace std;
void quickSort(int array[],int X,int Y) //X,Y分别是数组的起始下标
{
    int z,y,i,k;
    if(Xarray[z];  //关键值
        do{
            while((zarray[y]>=k))
             y--;
            if(z//右边的元素小于k,移到k的左边。
            {
                array[z]=array[y];
                z++;
            }
            while((zarray[z]<=k)
                z++;
            if(z//左边的值小于k,移到看k的右边
            {
                array[y]=array[z];
            }

        }while(z!=y);
          array[z]=k;//复制key值到array[z] 
        quickSort(array,X,z-1);//对z的左侧进行排序
            quickSort(array,z+1,Y);//对z的右侧进行排序
    }
}
int main()
{
    int a[11], i;
    // char tmp[20];
  for (i = 0; i<11; i++) 
   cin>>a[i];
  quickSort(a, 0, 10); 
  for (i = 0; i<11; i++)
   cout<<"输出数组元素"<"pause");
     return 0;
 }

你可能感兴趣的:(c++,C++,快速排序)