当前位置: 首页 > news >正文

分治-快速排序系列一>快速排序

目录

  • 题目方法:
  • 优化方法:
  • 代码:

题目方法:

这里是引用


忘记快速排序看这里:链接: link

优化方法:

这里是引用

代码:

public int[] sortArray(int[] nums) {
        qsort(nums,0,nums.length-1);
        return nums;
    }

    private void qsort(int[] nums, int L, int r){
        if(L >= r) return;

        int key = nums[new Random().nextInt(r-L+1)+L];//基准元素
        int left = L-1,right = r+1,i = L;//注意这里的left和right会随递归改变,不能写死

        while(i < right){
            if(key > nums[i]) swap(nums, ++left, i++);
            else if(key == nums[i]) i++;
            else swap(nums, --right, i);
        }

        //[L,letf][letf+1,right-1][right,r]
        qsort(nums,L,left);
        qsort(nums,right,r);
    }

    private void swap(int[] nums, int i, int j){
        int t = nums[i];
        nums[i] = nums[j];
        nums[j] = t;
    }

相关文章:

  • VMWare:解决Linux虚拟机找不到共享文件夹
  • Java单元测试、Junit、断言、单元测试常见注解、单元测试Maven依赖范围、Maven常见问题解决方法
  • ubuntu高并发内核参数调优 - (压测客户端调优)
  • 【面试场景题-Redis中String类型和map类型的区别】
  • 蓝桥杯练习day2:执行操作后的变化量
  • 如何判断 MSF 的 Payload 是 Staged 还是 Stageless(含 Meterpreter 与普通 Shell 对比)
  • MySQL:数据库基础
  • 解决虚拟机网络问题
  • 【论文笔记】VGGT-从2D感知3D:pose估计+稠密重建+点跟踪
  • 爬虫基础之爬取猫眼Top100 可视化
  • 程序化广告行业(29/89):人群策略在广告投放中的应用
  • 法兰克仿真软件FANUC CNC Guide v25.0 安装教程及中文设置
  • 【FastGPT】利用知识库创建AI智能助手
  • 【java】反射
  • SAP S/4 HANA 升级带来的 3个黄金周期
  • PointVLA:将 3D 世界注入视觉-语言-动作模型
  • 怎么用LoRA的低秩结构近似Fisher矩阵
  • Pytorch使用手册—扩展 TorchScript 使用自定义 C++ 操作符(专题五十三)
  • 华为云虚拟化技术
  • ffmpeg(库编译) 01 搭建环境和安装依赖
  • 5月1日全国铁路发送旅客2311.9万人次,创历史新高
  • 李强签署国务院令,公布修订后的《中华人民共和国植物新品种保护条例》
  • 来论|受美国“保护”,日本民众要付出什么代价?
  • 国家医保局副局长颜清辉调任人社部副部长
  • 160名老人报旅行团被扔服务区?张家界官方通报
  • 中行一季度净赚超543亿降2.9%,利息净收入降逾4%