快速排序

/*快速排序*/
#include<iostream>
#include<stdlib.h>
#include<algorithm>
using namespace std;
const int Max=1e4+5;

int array[Max];

int Findout(int l,int r){
    int x=array[l];//
    
    while(l<r){
    while(array[r]>=x&&l<r) r--;
       swap(array[r],array[l]);//寻小     
    while(array[l]<=x&&l<r) l++;
       swap(array[l],array[r]);//寻大 
    }
    return l;
}

void quickSort(int l,int r){
    if(l<r){
    int pivotloc=Findout(l,r);
    
    quickSort(l,pivotloc-1);//左边 
    quickSort(pivotloc+1,r);//右边 
    
    }
    return ;
}

int main(){
    int i,n;
    cout<<"请输入数组大小:"; 
    cin>>n;
    for(i=0;i<n;i++)
        cin>>array[i];//输入数据    
    quickSort(0,n-1);//注意是n-1 
    for(i=0;i<n;i++)
    cout<<array[i]<<" ";//输出数据
    return 0;    
} 

 

posted @ 2020-03-02 15:45  //Mendax  阅读(138)  评论(0编辑  收藏  举报