标签:
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