码迷,mamicode.com
首页 > 编程语言 > 详细

快速排序

时间:2016-12-28 12:29:51      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:return   art   i++   class   namespace   void   std   quick   bsp   

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 }

 

快速排序

标签:return   art   i++   class   namespace   void   std   quick   bsp   

原文地址:http://www.cnblogs.com/fengsz/p/6228655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!