A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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;
        }
}

3 个回复

倒序浏览
顶顶顶顶顶顶顶顶顶
回复 使用道具 举报
加油~~~~~~~~~~~~~~~!
回复 使用道具 举报
快速排序 最优排序啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马