快速排序

对时间复杂度和空间复杂度有要求

方法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);
}
}

最新文章

  1. [bzoj3932][CQOI2015][任务查询系统] (主席树)
  2. Solr学习总结(二)Solr的安装与配置
  3. js数组操作【转载】
  4. centos修改hostname以及时间同步
  5. Github两步认证
  6. BootStrap2学习日记6---代码
  7. Google地图
  8. 花店橱窗(flower)
  9. Spring MVC 项目搭建 -1- 创建项目
  10. 从flexible.js引入高德地图谈起的移动端适配
  11. CI/CD持续集成/持续部署 敏捷开发
  12. git更新提交代码常用命令
  13. linux下 gdb+coredump 调试偶发crash的程序
  14. 【Linux学习二】文件系统
  15. Unity3D学习笔记(十一):布料和协程
  16. 提交给mysql java驱动的优化下个版本要发布了^_^
  17. IE显示对象不支持此属性或方法 的解决方法
  18. idea常用实用快捷键
  19. RESTful HTTP的实践(转)
  20. c++ 双向链表操作总结

热门文章

  1. Elasticsearch 索引生命周期管理 ILM 实战指南
  2. 开启tcp_timestamps和tcp_tw_recycle造成NAT转发连接不上
  3. Elasticsearch官方文档离线访问实操指南
  4. 基于 Apache Hudi 极致查询优化的探索实践
  5. [题解] Codeforces 1548 C The Three Little Pigs 组合数学,生成函数
  6. Leetcode刷题笔记(双指针)
  7. vue3中pinia的使用总结
  8. ClickHouse(07)ClickHouse数据库引擎解析
  9. mysql 过程和函数语法学习笔记
  10. Linux实战笔记_CentOS7_格式化磁盘