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

快速排序

时间:2016-09-18 23:43:48      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

 1 /**
 2  * 功能:快速排序
 3  */
 4 public class QuickSort {
 5 
 6     public int[] process(int[] array) {
 7 
 8         if (null == array || 0 == array.length) {
 9             return array;
10         }
11 
12         sort(array, 0, array.length - 1);
13 
14         return array;
15     }
16 
17     public void sort(int[] array, int low, int high) {
18 
19         int middle; //枢纽的位置
20 
21         if (low < high) {
22             middle = partition(array, low, high);
23             sort(array, low, middle - 1);
24             sort(array, middle + 1, high);
25         }
26 
27     }
28 
29     public int partition(int[] array, int low, int high) {
30 
31         int midValue = array[low]; //存储枢纽的值
32 
33         while (low < high) {
34             while (low < high && midValue <= array[high]) {
35                 high--;
36             }
37 
38             swap(array, low, high);
39 
40             while (low < high && midValue >= array[low]) {
41                 low++;
42             }
43 
44             swap(array, low, high);
45         }
46 
47         return low;
48     }
49 
50     public void swap(int[] array, int a, int b) {
51 
52         int temp;
53 
54         temp = array[a];
55         array[a] = array[b];
56         array[b] = temp;
57     }
58 }

 

快速排序

标签:

原文地址:http://www.cnblogs.com/jiangyi-uestc/p/5883340.html

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