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

普通快速排序的两种实现

时间:2016-01-25 06:34:55      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include<iostream>
 2 using namespace std;
 3 
 4 int arr[10] = {1,9,2,5,4,6,3,8,7,1};
 5 
 6 void dump(int arr[],int cnt)
 7 {
 8     for(int i=0;i<cnt;i++){
 9         cout<<arr[i]<<" ";
10     }
11     cout<<endl;
12 }
13 
14 
15 void QSort(int arr[],int start,int end)
16 {
17     if(start>=end)return;
18     int i=start,j=end;
19     int key = arr[i];
20     while(i<j)
21     {
22         while(i<j && arr[j] > key)j--;
23         arr[i] = arr[j];
24         while(i<j && arr[i] <= key)i++;
25         arr[j] = arr[i];
26     }
27     arr[i] = key;
28     QSort(arr,start,i-1);
29     QSort(arr,i+1,end);
30 }
31 
32 void QSort1(int arr[],int start,int end)
33 {
34     int tmp;
35     if(start>=end)return;
36     int key=arr[end];
37     int i = start;
38     for(int j=start;j<end;j++){
39         if(arr[j]>=key){
40             tmp=arr[j];
41             arr[j]=arr[i];
42             arr[i]=tmp;
43             i++;
44         }
45     }
46     arr[end]=arr[i];
47     arr[i]=key;
48     QSort1(arr,start,i-1);
49     QSort1(arr,i+1,end);
50 }
51 
52 int main()
53 {
54     QSort(arr,0,9);
55     dump(arr,10);
56     QSort1(arr,0,9);
57     dump(arr,10);
58     return 0;
59 }

 

普通快速排序的两种实现

标签:

原文地址:http://www.cnblogs.com/tangxin-blog/p/5156488.html

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