快排_Java

Posted alittlecomputer

tags:

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

快排的原则就是选一个标准,然后每一个数据和这个标准对比,比这个标准大的放在左边,比这个标准小的放在右边。

看代码:

package com.logan.Algo;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int [] array = {9,1,7,3,6,2,10,4};
        int n = array.length;
        QuickSort(array, 0, n-1);
        for(int i=0;i<n;i++) {
            System.out.println(array[i]);
        }
        

    }
    
    private static void QuickSort(int[] num, int left, int right) {
        // 如果left=right,即数组中只剩一个元素时,直接返回
        if(left>=right) {
            return;
        }
        // 设置最左边的元素为基准值
        int key = num[left];
        //数组中比key小的放在左边,比key大的放在右边
        int i = left;
        int j = right;
        while(i<j) {
            //j向左移动,直到碰到比key小的数
            while(num[j]>=key && i<j) {
                j--;
            }
            //i向右移动,直到碰到比key大的数
            while(num[i]<=key && i<j) {
                i++;
            }
            //i和j指向的元素交换
            if(i<j) {
                int temp = num[i];
                num[i] = num[j];
                num[j] = temp;
            }
        }
        num[left] = num[i];
        num[i] = key;
        QuickSort(num, left, i-1);
        QuickSort(num, i+1, right);
    }

}

 

以上是关于快排_Java的主要内容,如果未能解决你的问题,请参考以下文章

scala快排

链表问题-----排序

Java版算法思想(排序)选择&冒泡&快排

Java版算法思想(排序)选择&冒泡&快排

Python实现快排 -- 2019-08-09 12:12:36

快排_C实现