快速排序

#include<iostream>
using namespace std;
int arr[10001];

void QuickSort(int s,int e)
{
    int x=arr[s];
    int l=s;             //以第一个数为参照做比较  
    int r=e;
    if(l>=r)
      return;
    while(l<r)
    {
        while(l<r &&arr[r]>=x)
        {
            r--;     //不小于分界值的留在右边,遇到小于的停止
        }
        arr[l]=arr[r];
        while(l<r && arr[l]<=x)
        {
            l++;
        }
        arr[r]=arr[l];
    }
    arr[r]=x;
    QuickSort(s,r-1);
    QuickSort(r+1,e);
    return ;
}

int main()
{
    int i,n;
    cin>>n; //输入要排序的数组长度
    for(i=0;i<n;i++)
    {
        cin>>arr[i];
    }
    QuickSort(0,n-1);
    for(i=0;i<n;i++)
    {
        cout<<arr[i]<<endl;
    }
    return 0;
}

原文地址:https://www.cnblogs.com/qingcheng/p/2026390.html