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

【力扣 中等 C】912. 排序数组

目录

题目

解法一:快速排序


题目

解法一:快速排序

void swap(int* a, int* b)
{int tmp = *a;*a = *b;*b = tmp;
}void partition(int* nums, int left, int right, int* leftMax, int* rightMin)
{int randomNum = nums[left + rand() % (right - left + 1)];int l = left, r = right, i = left;while (i <= r){if (nums[i] < randomNum)swap(&nums[l++], &nums[i++]);else if (nums[i] > randomNum)swap(&nums[r--], &nums[i]);elsei++;}*leftMax = l;*rightMin = r;
}void quickSort(int* nums, int left, int right)
{if (left >= right)return;int leftMax, rightMin;partition(nums, left, right, &leftMax, &rightMin);quickSort(nums, left, leftMax - 1);quickSort(nums, rightMin + 1, right);}int* sort(int* nums, int len)
{srand(time(NULL));quickSort(nums, 0, len - 1);return nums;
}int* sortArray(int* nums, int numsSize, int* returnSize)
{*returnSize = numsSize;return sort(nums, numsSize);
}

相关文章:

  • 高级网络中间人攻击与加密防护机制
  • 安宝特方案丨AR破解带电配网作业困局!全方位解决方案赋能电力运维新变革
  • 日志混乱与数据不一致问题实战排查:工具协同调试记录(含克魔使用点)
  • java 数组排序算法
  • 【Linux指南】文件内容查看与文本处理
  • OpenCV CUDA模块设备层------简介
  • C++初阶-queue和deque(队列和双端队列)
  • cockplit 出现 Cannot refresh cache whilst offline 处理
  • 时间序列分析
  • 【Java】抽象类与接口全解析
  • android 启动速度优化
  • Ubuntu 22.04离线安装Docker和NVIDIA Container Toolkit(使用gpu)
  • 在 VMware (WM) 虚拟机上安装的 Ubuntu 22.04 分配了 20GB 磁盘,但仅使用 10GB 就显示 “空间已满“
  • 【ZYNQ Linux开发】gpio子系统相关驱动先于Xgpio注册完成而加载失败的问题分析与探究
  • 《从IaaS到容器化:深度解析云计算三层架构与阿里云ECS+K8s协同实践》
  • 快速入门数据结构--栈
  • 【云计算领域数学基础】组合数学优化
  • 1.19集成开发环境(IDE)
  • 从loader和plugin开始了解webpack
  • Alova 封装与 Vue 3 集成示例
  • 弹幕网站用什么做/国外搜索引擎网址
  • 慈溪怎么做网站/百度信息流代理
  • 网站建设 嘉定/全球最大的中文搜索引擎
  • 日本的广告网站/灰色关键词怎么做排名
  • 辽宁省建设工程造价总站网站/百度网站制作
  • 哪个网站做加盟的比较靠谱/怎么建立一个属于自己的网站