博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三路快速排序
阅读量:4677 次
发布时间:2019-06-09

本文共 681 字,大约阅读时间需要 2 分钟。

 

//这是三路快速排序的实现,最重要的是要注意边界值的问题,尤其是lt,gt和i的取值,千万不要弄错了

//下面实现的lt代表的是包括最右边的那个,整个区间是【l,lt】是个闭区间,右边也是个闭区间,所以写代码时要注意,在算法这本书中的实现与我的区间有些不同,请注意。

class Solution {

    public static void quickSort(int[] arr,int l,int r)
    {
        if(l>=r)
            return ;
        int lt=l,i=l+1,gt=r+1;
        int v=arr[l];
        while(i<gt)
        {
            if(arr[i]<v)
            {
                swap(arr,i,lt+1);
                i++;
                lt++;
            }
            else if(arr[i]>v)
            {
                swap(arr,i,gt-1);
                gt--;
            }
            else
            {
                    i++;
            }
        }
        swap(arr,l,lt);
        quickSort(arr,l,lt-1);
        quickSort(arr,gt,r);
    }
    public static void swap(int[] arr,int x,int y)
    {
        int temp=arr[x];
        arr[x]=arr[y];
        arr[y]=temp;
    }
    public int[] sortArray(int[] nums) {
        quickSort(nums,0,nums.length-1);
        return nums;
    }
}

转载于:https://www.cnblogs.com/cold-windy/p/11189911.html

你可能感兴趣的文章
c语言基础知识要点
查看>>
Android模拟器无法上网访问网络失败解决办法
查看>>
node启动时, listen EADDRINUSE 报错;
查看>>
vue学习链接
查看>>
Systemd 初始化进程
查看>>
【C#学习笔记】文本复制到粘贴板
查看>>
Windows store 验证你的 URL http:// 和 https:// ms-appx:/// ms-appdata:///local
查看>>
python全栈开发_day7_字符编码,以及文件的基本读取
查看>>
js 验证码 倒计时60秒
查看>>
C#基础
查看>>
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 15. 用户管理
查看>>
杭电3466————DP之01背包(对状态转移方程的更新理解)
查看>>
JSP页面中的精确到秒的时间控件
查看>>
C#4.0语言新功能及应用 (1)
查看>>
http协议状态码对照表
查看>>
xmapp中 使用admin的权限打开mysql时出现错误1045
查看>>
chrome表单自动填充去掉input黄色背景
查看>>
使用hex6x 进行十六进制转换
查看>>
第一章 用标准I/O函数将标准输入复制到标准输出 1-3
查看>>
Remove Mapping
查看>>