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

2025年- H100-Lc208--912.排序数组(快速选择排序)--Java版

1.题目

在这里插入图片描述

2.思路

快速选择排序的平均时间复杂度是O(nlogn),最坏时间复杂度是O(n^2),最好的时间复杂度是O(nlogn),空间复杂度是O(nlogn)。
排序算法中不稳定的算法是:快希选堆(牺牲稳定性,快速的选择都是不稳定的)。
例子:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.代码实现

class Solution {public int[] sortArray(int[] nums) {if (nums == null || nums.length == 0) {return nums;}QuickSort(nums, 0, nums.length - 1);return nums;}public void QuickSort(int[] nums, int low, int high) {if (low < high) {int pivotIndex = partition(nums, low, high);QuickSort(nums, low, pivotIndex - 1);QuickSort(nums, pivotIndex + 1, high);}}public int partition(int[] nums, int low, int high) {// 随机选择一个 pivot,交换到 high 位置int rand = low + (int)(Math.random() * (high - low + 1));swap(nums, rand, high);int pivot = nums[high];int i = low - 1;// 遍历 [low, high-1]for (int j = low; j < high; j++) {if (nums[j] <= pivot) {i++;swap(nums, i, j);}}swap(nums, i + 1, high);return i + 1; // 返回基准值的位置}public void swap(int[] nums, int i, int j) {if(i!=j){int tmp = nums[i];nums[i] = nums[j];nums[j] = tmp;}}
}
http://www.dtcms.com/a/352974.html

相关文章:

  • k8s-容器化部署论坛和商城服务
  • 筑牢上线前安全防线:安全运维服务中的检测实践与深化
  • 【电路笔记 通信】子载波的频域Sinc函数证明 OFDM 正交子载波证明 绘图示例
  • Spring Cloud 高频面试题详解(含代码示例与深度解析)
  • AutoGen 智能体框架教程
  • THM Smol
  • leecode-三数之和
  • 广告牌安全监测系统综合解决方案
  • Python 前后端框架实战:从选型到搭建简易全栈应用
  • 6 种无需 iTunes 将照片从 iPhone 传输到电脑
  • Spark学习记录
  • 数据结构第8章 排序(竟成)
  • OpenFOAM中梯度场的复用(caching)和生命期管理
  • 【微信小程序】分别解决H5的跨域代理问题 和小程序正常不需要代理问题
  • 利用python脚本从dockerhub上下载镜像,可以选择arm架构还是x86架构
  • 福建地区通信安全员考试题库及答案
  • 基于FPGA的情绪感知系统设计方案:心理健康监测应用(四)
  • FPGA入门学习路径
  • Go变量作用域全解析
  • Zynq介绍和命名方式
  • FPGA学习笔记——Verilog中可综合和不可综合语句
  • 德克西尔氢气探测器:工业安全守护核心
  • 【Linux】用户与用户组管理
  • 6.8 学习ui组件方法和Element Plus介绍
  • 嵌入式C语言进阶:高效数学运算的艺术与实战
  • Java全栈开发面试实战:从基础到微服务架构的深度解析
  • 革新固态电池失效分析技术:AFM-SEM联用技术助力突破瓶颈
  • Java 大视界 -- Java 大数据机器学习模型在电商推荐系统冷启动问题解决与推荐效果提升中的应用(403)
  • Unity Shader unity文档学习笔记(二十一):几种草体的实现方式(透明度剔除,GPU Instaning, 曲面细分+几何着色器实现)
  • Axios 整理常用形式及涉及的参数