黑马程序员技术交流社区

标题: 自己写快速排序法,欢迎大家指出不足之处 [打印本页]

作者: 经济    时间: 2015-6-2 10:49
标题: 自己写快速排序法,欢迎大家指出不足之处
public class Test {

        public static void main(String[] args) {
                // 定义一个数组
                int[] arr = { 24, 28, 52, 2, 5, 69, 45, 15, 34, 35 };
                // 快速排序
                quickSort(arr, 0, arr.length - 1);
                // 输出结果
                System.out.println(Arrays.toString(arr));
        }

        private static void quickSort(int[] arr, int i, int length) {
                if (i < length) {
                        // 得到中间数据索引
                        int middle = getMiddleData(arr, i, length);
                        // 对左边数据进行排序
                        quickSort(arr, 0, middle - 1);
                        // 对右边数据进行排序
                        quickSort(arr, middle + 1, length);
                }
        }

        private static int getMiddleData(int[] arr, int i, int length) {
                // 记录数组的最低位和最高位索引
                int low = i;
                int high = length;
                // 记录数组的第一个元素作为中轴元素
                int temp = arr[i];
                while (low < high) {
                        while (low < high && temp <= arr[high]) {
                                high--;
                        }
                        arr[low] = arr[high];
                        while (low < high && arr[low] <= temp) {
                                low++;
                        }
                        arr[high] = arr[low];

                }
                arr[low] = temp;
                return low;
        }
}

作者: w490541    时间: 2015-6-2 21:49
顶顶顶顶顶顶顶顶顶
作者: gaoer    时间: 2015-6-2 22:25
加油~~~~~~~~~~~~~~~!
作者: Amu    时间: 2015-6-2 23:15
快速排序 最优排序啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2