快排
Posted shulin~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快排相关的知识,希望对你有一定的参考价值。

1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 int n; 5 const int maxn=1e5+2; 6 int s[maxn]; 7 8 void quick_sort(int l,int r) 9 { 10 if(l>=r) return; 11 int x=s[l]; 12 int i=l,j=r; 13 while(i<j) 14 { 15 while(i<j&&s[j]>=x) j--; 16 if(i<j) s[i++]=s[j]; 17 while(i<j&&s[i]<x) i++; 18 if(i<j) s[j--]=s[i]; 19 } 20 s[i]=x; 21 quick_sort(l,i-1); 22 quick_sort(i+1,r); 23 } 24 int main() 25 { 26 while(~scanf("%d",&n)) 27 { 28 for(int i=1;i<=n;i++) 29 { 30 scanf("%d",&s[i]); 31 } 32 quick_sort(1,n); 33 for(int i=1;i<=n;i++) 34 { 35 printf("%d ",s[i]); 36 } 37 printf("\n"); 38 } 39 return 0; 40 }
以上是关于快排的主要内容,如果未能解决你的问题,请参考以下文章
8种面试经典!排序详解--选择,插入,希尔,冒泡,堆排,3种快排,快排非递归,归并,归并非递归,计数(图+C语言代码+时间复杂度)