美文网首页
2020-04-10快速排序的Java实现

2020-04-10快速排序的Java实现

作者: 捕风的逍遥侯 | 来源:发表于2020-04-10 21:28 被阅读0次
    
    package hxy.bytecode.algorithm.sort;
    
    /**
     * @author eric
     * @program bytecode
     * @description 快速排序
     * @date 2020/4/10
     */
    public class QuickSort2 {
    
        public void quickSort(int[] a, int low, int high) {
            int low1 = low;
            int high1 = high;
    
            if (low >= high) {
                return;
            }
    
            // 选取第一个为基线
            int index = a[low];
            while (low < high) {
                while (low < high && index < a[high]) {
                    high--;
                }
                if (low < high) {
                    a[low] = a[high];
                    low++;
                }
                while (low < high && index > a[low]) {
                    low++;
                }
                if (low < high) {
                    a[high] = a[low];
                    high--;
                }
            }
            // 找到自己的中间位置
            a[low] = index;
    
            quickSort(a, low1, low - 1);
            quickSort(a, low + 1, high1);
        }
    
    
        public static void main(String[] args) {
            int[] a = {1, 2, 5, 4, 7, 9, 0, 8, 3, 6};
    
            new QuickSort2().quickSort(a, 0, a.length - 1);
    
            for (int i = 0; i < a.length; i++) {
    
                System.out.print(a[i] + "\t");
    
            }
        }
    }
    
    

    结果如下:


    快速排序结果

    相关文章

      网友评论

          本文标题:2020-04-10快速排序的Java实现

          本文链接:https://www.haomeiwen.com/subject/xthjmhtx.html