栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

快速排序的java实现(有解释说明,便于新手理解,大佬勿进)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

快速排序的java实现(有解释说明,便于新手理解,大佬勿进)

先看思想,再看代码,第一个代码不好分析的话,看第二个纯代码,这是一个升序排序,每一步都有仔细的说明,还是不懂私信或者留言
1
思想就是定义一个首索引,一个尾索引,还有一个哨兵元素,然后尾索引往前遍历找比哨兵元素小的,首索引往后遍历,找比哨兵元素大的,交换,遍历,交换,遍历,交换…一旦首尾索引相遇,相遇位置元素和哨兵元素交换,然后哨兵元素左边都比哨兵元素小,右边都比哨兵元素大,然后哨兵元素左边数组迭代,右边数组迭代。以达成排序目的(主要理解交换,遍历,交换,遍历第一个代码中有详细解释)

public class FastSort {
    public static void main(String[] args) {
        int arr[] = new int[]{5,1,6,10,4,3,9,8,7,2};
        Sort(arr,0,arr.length-1);//主要看这个排序方法
        for(int a : arr){//增强for循环遍历排序好的数组
            System.out.println(a);
        }

    }
    private static void Sort(int arr[],int left,int right){
        if(left > right){//放在第一步,很重要,首索引不能大于尾索引
            return;
        }
        int i = left;
        int j = right;
        int key = arr[left];//定义哨兵元素(我习惯放在最左边)

        while(i < j){
            while(i= key){//从右边找比哨兵元素小的,找不到就j--,找到后跳出当前循环
                j--;
            }
            //注意用我这个条件判断的话两个内部的while循环不能换顺序
            while(i 

//下面是纯代码
下面展示一些 内联代码片。

// A code block
var foo = 'bar';
public class FastSort {
    public static void main(String[] args) {
        int arr[] = new int[]{12,5,1,6,10,4,3,9,8,11,7,2};
        Sort(arr,0,arr.length-1);
        for(int a : arr){
            System.out.println(a);
        }

    }
    private static void Sort(int arr[],int left,int right){
        if(left > right){
            return;
        }
        int i = left;
        int j = right;
        int key = arr[left];

        while(i < j){
            while(i= key){
                j--;
            }
            while(i 

博主大三菜鸟,写这个希望能帮到大家!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/310386.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号