当前位置: 首页 > 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;
    }
http://www.dtcms.com/a/78004.html

相关文章:

  • 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 搭建环境和安装依赖
  • Java SE 24 新增特性
  • C语言:(大数相加版)数字阶梯求和
  • JAVA-AOP底层原理
  • 每日一题——买卖股票的最佳时机
  • SQL Server数据库慢SQL调优
  • 《认知觉醒》改变的核心方法论
  • 【Java基础巩固系列】异常
  • 【Android】安卓 Java下载ZIP文件并解压(笔记)
  • Python中Requests的Cookies的简单使用
  • 2025-03-19 学习记录--C/C++-C语言-单链表的结构体定义 + LNode * 和 LinkList 的区别