排序算法

来源:互联网 发布:知无涯者在线 编辑:程序博客网 时间:2024/05/22 20:42
// 快速排序,原理:通过选定一个key,i=0;j=n-1;第一次排序时,将i的值list[i]从前往后找比key小的值,将j的值list[j]从后往前找比key大的值// 找到则与key调换位置,直到i与j相等;此时:key左边的值都比其小;key右边的值都比其大;public static void QuickSort(int[] list, int start, int end) {int i = start;int j = end;int tmp;if ((list == null) || (list.length == 0)) {return;}while (i < j) {while ((i < j) && list[i] <= list[j]) {j--;}if (i < j) {tmp = list[i];list[i] = list[j];list[j] = tmp;}while (i < j && list[i] < list[j]) {i++;}if (i < j) {tmp = list[i];list[i] = list[j];list[j] = tmp;}}if (start < end) {QuickSort(list, start, i - 1);QuickSort(list, i + 1, end);}}

0 0
原创粉丝点击