【每日一题】【快速排序过程、循环过程无=、递归参数】2022年1月16日-NC140 排序
2024-10-20 13:30:10
快速排序
对时间复杂度和空间复杂度有要求
方法1:快速排序-递归
import java.util.*; public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 将给定数组排序
* @param arr int整型一维数组 待排序的数组
* @return int整型一维数组
*/
public int[] MySort (int[] arr) {
quickSort(arr, 0, arr.length - 1);
return arr;
}
public void quickSort(int[] arr, int low, int high) {
if(low >= high) {
return;
}
//枢纽元素的名字叫pivot
int pivot = arr[low];
int i = low, j = high;
while(i < j) {
//注意循环体,是先从右往左找
while(i < j && arr[j] > pivot) {
j--;
}
if(i < j) {
arr[i++] = arr[j];
}
//再从左往右找
while(i < j && arr[i] < pivot) {
i++;
}
if(i < j) {
arr[j--] = arr[i];
}
}
//最后的位置才放入枢纽元素
arr[i] = pivot;
//注意递归的下标从哪里到哪里
quickSort(arr, low, i - 1);
quickSort(arr, i + 1, high);
}
}
最新文章
- [bzoj3932][CQOI2015][任务查询系统] (主席树)
- Solr学习总结(二)Solr的安装与配置
- js数组操作【转载】
- centos修改hostname以及时间同步
- Github两步认证
- BootStrap2学习日记6---代码
- Google地图
- 花店橱窗(flower)
- Spring MVC 项目搭建 -1- 创建项目
- 从flexible.js引入高德地图谈起的移动端适配
- CI/CD持续集成/持续部署 敏捷开发
- git更新提交代码常用命令
- linux下 gdb+coredump 调试偶发crash的程序
- 【Linux学习二】文件系统
- Unity3D学习笔记(十一):布料和协程
- 提交给mysql java驱动的优化下个版本要发布了^_^
- IE显示对象不支持此属性或方法 的解决方法
- idea常用实用快捷键
- RESTful HTTP的实践(转)
- c++ 双向链表操作总结
热门文章
- Elasticsearch 索引生命周期管理 ILM 实战指南
- 开启tcp_timestamps和tcp_tw_recycle造成NAT转发连接不上
- Elasticsearch官方文档离线访问实操指南
- 基于 Apache Hudi 极致查询优化的探索实践
- [题解] Codeforces 1548 C The Three Little Pigs 组合数学,生成函数
- Leetcode刷题笔记(双指针)
- vue3中pinia的使用总结
- ClickHouse(07)ClickHouse数据库引擎解析
- mysql 过程和函数语法学习笔记
- Linux实战笔记_CentOS7_格式化磁盘