java实现的快速排序小示例

Posted Neo_Gamer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java实现的快速排序小示例相关的知识,希望对你有一定的参考价值。

写了个快速排序,结果是正确的,达到预期,请各路朋友指教。

/**
 * 快速排序示例,先选定基准值,比基准值大的放在右边,比基准值小的在左边
 * 右边先比较,再左边比较,再右边比较,再左边比较......
 *
 * @author x_wq
 * @date   2021/11/11 14:47
 */
public class QuickSortDemo 

    public static void main(String[] args) 
        int[] array = 12, 7, 20, 13, 34, 9, 18, 25, 6;
        quick(array, 0, array.length - 1);
        System.out.println(Arrays.toString(array));
    

    private static void quick(int[] array, int start, int end) 
        int tmp = array[start];
        int tmpIndex = 0;

        int left = start;
        int right = end;
        while (left < right) 
            // 右边遍历
            while (array[right] >= tmp && right > left) 
                right --;
            
            array[left ++] = array[right];
            if (right == left - 1) 
                tmpIndex = right;
                break;
            

            // 左边遍历
            while (array[left] <= tmp && left < right) 
                left ++;
            
            array[right --] = array[left];
            if (left == right + 1) 
                tmpIndex = left;
                break;
            

        
        array[tmpIndex] = tmp;

        // 以当前基准值将数组分成两部分,继续循环
        int leftIndex = tmpIndex - 1;
        int rightIndex = tmpIndex + 1;
        if (leftIndex > 0 && leftIndex > start) 
            quick(array, start, leftIndex);
        
        if (rightIndex < array.length - 1 && rightIndex < end) 
            quick(array, rightIndex, end);
        
    

以上是关于java实现的快速排序小示例的主要内容,如果未能解决你的问题,请参考以下文章

java实现的快速排序小示例

java实现的快速排序小示例

java实现快速排序

Java快速排序算法

排序-快速排序

快速排序