您的位置:首页 > 产品设计 > UI/UE

Quick sort

2016-07-27 15:45 471 查看
Quick sort is look like bubble sort, but it is quicker with divide and conquer.

Complexity: nlog(n)

Steady: NO

#include<bits/stdc++.h>
using namespace std;

int L[] = {3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};

void QuickSort(int left,int right){
int l = left;
int r = right;
if(left>=right){
return ;
}
int pivot = L[left];
while(left<right){
while(left<right&&L[right]>=pivot){
//it must be L[right]>=pivot not '>',
//or it will infinite loop like L[] = {3,3}
right--;
}
L[left] = L[right];
while(left<right&&L[left]<=pivot){ //as  before
left++;
}
L[right] = L[left];
}
L[left] = pivot;
QuickSort(l,left);
QuickSort(right+1,r);
return ;
}

int main(){
int n = sizeof(L)/sizeof(int);
int left = 0;
int right = n-1;
QuickSort(left,right);
for(int i=0;i<n;i++){
cout<<L[i]<<' ';
}
cout<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: