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

快速排序

时间:2019-10-01 11:35:00      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:quick   调整   整数   main   using   数组   const   code   ret   

具体思路:

每次找一个基准数来调整数组中的元素,调整完之后i和j相遇的地方,左边都是小于等于基准数的,右边都是大于等于基准数的。

然后递归往下进行,直到只有一个元素

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int MAXSIZE = 100000;
 4 int n;
 5 int a[MAXSIZE];
 6 void quicksort(int left,int right){
 7     int i, j, t, tmp;
 8     if(left > right){
 9         return ;
10     }
11     tmp = a[left];
12     i = left;
13     j = right;
14     while(i != j){
15         while(a[j] >= tmp && i < j){
16             j--;
17         }
18         while(a[i] <= tmp && i < j){
19             i++;
20         }
21         if(i < j){
22             swap(a[i], a[j]);
23         }
24     }
25     a[left] = a[i];
26     a[i] = tmp;
27     quicksort(left, i - 1);
28     quicksort(i + 1, right);
29     return ;
30 }
31 int main(){
32 
33     int i, j, t;
34     scanf("%d", &n);
35     for(i = 1; i <= n; i++){
36         scanf("%d", &a[i]);
37     }
38     quicksort(1,n);
39     for(i = 1; i <= n; i++){
40         printf("%d ",a[i]);
41     }
42     printf("\n");
43     return 0;
44 }

 

快速排序

标签:quick   调整   整数   main   using   数组   const   code   ret   

原文地址:https://www.cnblogs.com/letlifestop/p/11614860.html

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