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

快速排序 容易理解的版本

package huaweiod.排序算法;import java.util.Arrays;public class 快速排序 {public static void main(String[] args) {int[] arr = {9,8,3,5,6,7,8,9};mysort(arr, 0, arr.length - 1);
//        myprint(arr," ");}private static void myprint(int[] arr, String str) {for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}System.out.println();}private static void mysort(int[] arr, int left, int right) {if (left >= right) {return;}int[] temp = new int[arr.length];int tleft = left;int tright = right;int middle = arr[left];for (int i = left + 1; i <= right; i++) {if (arr[i] <= middle) {temp[tleft] = arr[i];tleft++;} else {temp[tright] = arr[i];tright--;}}temp[tleft] = middle;for (int i = left; i <= right; i++) {arr[i] = temp[i];}myprint(arr, " ");mysort(arr, left, tleft - 1);mysort(arr, tleft + 1, right);}private static void myswap(int[] arr, int l, int r) {int temp = arr[l];arr[l] = arr[r];arr[r] = temp;}
}

主要思想

找一个数 比它小的放左边 比它大的放左边

然后递归

http://www.lryc.cn/news/4895.html

相关文章:

  • Linux体系结构
  • 【汽车电子】什么是ADAS?
  • java: 错误: 不支持发行版本 5(快速解决办法)
  • QT中pro文件常用qmake语法
  • Android 一体机研发之修改系统设置————声音
  • 挖掘长尾关键词的五大思路
  • ccc-Brief Introduction of Deep Learning-李宏毅(6)
  • 【TVM 学习资料】用 Schedule 模板和 AutoTVM 优化算子
  • 蓝牙Mesh学习笔记(一)
  • 【1234. 替换子串得到平衡字符串】
  • 独自开:提供创业机会、享受平台分红、推出新颖赚钱副业
  • C++【二叉树进阶(二叉搜索树)】
  • 【C++初阶】vector的使用
  • OPenPCDet windows流程及其问题
  • 【自学Python】Python字符大小写判断
  • 设计模式之美总结(开源实战篇)
  • 两个月,测试转岗产品经理,我是怎么规划的?
  • 三数之和-力扣15-java排序+双指针
  • 【编程基础之Python】3、创建Python虚拟环境
  • kettle开发-Day36-循环驱动作业
  • 2023秋招 新凯来 算法工程师 面经分享
  • Web3CN|Damus刷频背后,大众在期待什么样的去中心化社交?
  • Jenkins自动发布到WindowsServer,在WindowsServer执行的命令
  • 【Git学习】Git如何Clone带有Submodule的仓库?
  • C语言进阶——通讯录模拟实现
  • 【C#基础】C# 变量和常量的使用
  • nvm安装后出现‘node‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
  • 张驰咨询:关于六西格玛,有一些常见的疑惑!
  • 【Vercel】教你部署imsyy/home个人主页
  • GeekChallenge