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

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

目录

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

题目方法:

这里是引用


忘记快速排序看这里:链接: 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.kler.cn/a/592809.html

相关文章:

  • ESP8266 与 ARM7 接口-LPC2148 创建 Web 服务器以控制 LED
  • 穿越禁区:前端跨域通信的艺术与实践
  • C语言每日一练——day_7
  • Netty基础—6.Netty实现RPC服务二
  • 痉挛性斜颈护理宝典:重拾生活平衡
  • 2025-03-19 学习记录--C/C++-C语言-单链表的结构体定义 + LNode * 和 LinkList 的区别
  • 如何在 HTML 中实现无障碍访问,列举关键措施?
  • NAT及P2P通信
  • 比较常见的几种排序算法
  • 利用knn算法实现手写数字分类
  • Kafka-QA
  • 前端字段名和后端不一致?解锁 JSON 映射的“隐藏规则” !!!
  • 批量删除 PPT 中的所有图片、某张指定图片或者所有二维码图片
  • 链式二叉树概念和结构
  • GPU视频编解码:X86 DeepStream 视频编解码入门(三)
  • PostgreSQL逻辑复制槽功能
  • 华为全流程全要素研发项目管理(81页PPT)(文末有下载方式)
  • 【从零开始学习计算机科学与技术】计算机网络(六)传输层
  • java后端怎么写好根据角色控制查询不同数据,
  • c++图论(三)之图的遍历