学习了简单的算法知识排序中的快速排序,利用分治的思想来实现快速排序,对于前后大小有问题的进行swap的交换位置,这是基本的模版
和源码
include
using namespace std;
define N 1000100
int A[N];
void quick_sort(int a,int b){
if(a>=b)return ;
int i=a-1,j=b+1,x=A[a+b>>1];
while(i<j){
do i++;while(A[i]<x);
do j--;while(A[j]>x);
if(i<j) swap(A[i],A[j]);
}
quick_sort(a,j);
quick_sort(j+1,b);
}
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&A[i]);
}
quick_sort(0,n-1);
for(int i=0;i<n;i++)printf("%d ",A[i]);
return 0;
}
可以在N*log N,的复杂度实现排序,非常的快