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

快速排序

时间:2015-03-15 18:13:03      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

快速排序也是根据分治策略设计的一种高效率的分类算法。

首先回顾下分类算法的分类思想:它从待分类序列S中随机取出一个元素x,并把S分成三个子序列S1,S2和S3,分别是S中小于,等于和大于x的元素序列,而后对S1和S2递归使用本算法,就可以得到排好序的序列。实际操作中通常不分出序列S2,而是直接把S2中的元素归入S1和S3中。

 

 1 int  partition(int int_array[], int low, int high) 
 2 {
 3     int first = low, last = high;
 4     int key = int_array[first];
 5 
 6     while(first < last)
 7     {
 8         while(first < last && int_array[last] >= key) --last;
 9         int_array[first] = int_array[last];
10         while(first < last && int_array[first] <= key) first++;
11         int_array[last] = int_array[first];
12     }
13     int_array[first] = key;
14     return first;
15 }
16 
17 void my_quick_sort(int a[], int low, int high)
18 {
19     if(high > low)
20     {
21         int index = partition(a, low, high);
22         my_quick_sort(a, low, index-1);
23         my_quick_sort(a, index+1, high);
24     }
25 }

 

快速排序

标签:

原文地址:http://www.cnblogs.com/david-wang/p/4340009.html

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