快速排序
1、主要思想:
1、确定分界点:在这个数组的值随便确定一个分界点,比如分界点是X
的话
2、调整区间,将数组分为两部分,一部分放<=X,另一部分放>=X。
3、递归左右两个区间
#include<iostream>
using namespace std;
const int N =1e6 +10;
int n;
int q[n];
void quick_sort(int q[], int l, int r){
if(l>r){
return ;
}
int x= q[(l+r)/2], i= l,j=r;
while(i<j){
while(q[i]<x) i++;
while(q[j}>x) j--;
if(i<j){
swap(q[i],q[j]);
}
quick_sort(q,l,j);
quick_sort(q,j+1,r);
}
int main()
{
scanf("%d",&n);
for(int i = 0; i<n;i++){
scanf("%d",&q[i]);
}
quick_sort(q, 0, n-1);
for(int i = 0; i<n;i++){
print("%d",q[i]);
}
return 0;
}