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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;

public class QuickSort {
        public static void main(String[] args) {
                // 定义数组
                int[] arr = { 49, 11, 34, 23, 44, 54, 66, 4, 21, 75 };
                // 创建对象
                QuickSort qs = new QuickSort();
                // 调用快速排序方法
                quickSort(arr, 0, arr.length - 1);
                // 遍历
                qs.print(arr);
        }

        public static void quickSort(int[] arr, int low, int high) {
                int i = low;
                int j = high;

                // 基准元素
                int key = arr[low];

                while (true) {
                        // high往前走(与基准元素比,比基准元素小就交换)
                        while (j > i) {
                                if (arr[j] < key) {
                                        // 交换
                                        int temp = arr[j];
                                        arr[j] = arr[i];
                                        arr[i] = temp;
                                        break;
                                } else {
                                        j--;
                                }
                        }

                        // i往后走
                        while (j > i) {
                                if (arr[i] > key) {
                                        // 交换
                                        int temp = arr[j];
                                        arr[j] = arr[i];
                                        arr[i] = temp;
                                        break;
                                } else {
                                        i++;
                                }
                        }

                        if (i == j) {
                                break;
                        }

                        // 终止条件
                        if (i > j) {
                                return;
                        }

                        // 基准左边元素
                        quickSort(arr, low, i - 1);
                        // 基准右边元素
                        quickSort(arr, i + 1, high);
                }
        }

        public void print(int[] arr) {
                for (int i = 0; i < arr.length; i++) {
                        if (i == arr.length - 1) {
                                System.out.print(arr[i]);
                        } else {
                                System.out.print(arr[i] + ",");
                        }
                }
        }
}

1 个回复

倒序浏览
有一个叫自然排序应该可以用到这里来的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马