首页 > 代码库 > 快速排序
快速排序
Quick Sort
快速排序是目前最快的排序方法,他就是利用了分治的思想和分割(上一篇文章有讲)来完成排序。将序列进行分割,然后在将分割的前半段再分割,后半段也分割,知道前半段分割到不能再分,后半段也分到不能再分,就可以了。
代码如下:
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 5 const int maxn = 1000 + 5; 6 7 int a[maxn]; 8 9 int partition(int l,int r){10 int x = a[r];11 int i = l-1;12 for(int j = l;j < r; j++){13 if(a[j] <= x){14 i++;15 swap(a[j],a[i]);16 }17 }18 swap(a[i+1],a[r]);19 return i+1;20 }21 22 void quick_sort(int l,int r){23 if(l >= r)return;24 int p = partition(l,r);25 quick_sort(l,p-1);26 quick_sort(p+1,r);27 }28 29 int main(){30 int n;31 scanf("%d",&n);32 for(int i = 1;i <= n; i++){33 scanf("%d",&a[i]);34 }35 quick_sort(1,n);36 37 for(int i = 1;i <= n; i++){38 printf("%d ",a[i]);39 }40 }
快速排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。