快速排序

Posted

tags:

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

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 }

 

以上是关于快速排序的主要内容,如果未能解决你的问题,请参考以下文章

算法排序之堆排序

前端开发工具vscode如何快速生成代码片段

前端开发工具vscode如何快速生成代码片段

如何使用sublime代码片段快速输入PHP头部版本声明

代码片段如何使用CSS来快速定义多彩光标

vs2003:快速片段工具