排序算法二——快速排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | package com.demo02; import java.util.Arrays; /** * 快速排序 */ public class QuickSort { public static void main(String[] args) { int [] arr= new int []{ 4 , 123 , 213 , 21 , 3241 , 3231 , 32 , 3221 , 1 }; quickSort(arr, 0 ,arr.length- 1 ); System.out.println(Arrays.toString(arr)); } public static void quickSort( int [] array, int start, int end){ if (start<end){ //标准数 int stard=array[start]; //记录需要排序的下标 int low=start; int high=end; //循环找比标准数大的数 和比标准数小的数 while (low<high){ //看右边的数是否比标准数大 while (low<high&&array[high]>=stard){ high--; } array[low]=array[high]; //看左边的数字是否比标准数小 while (low<high&&array[low]<=stard){ low++; } array[high]=array[low]; } //处理完后需要把标准数赋给所在位置的元素 array[low]=stard; //处理所有小的数字 quickSort(array,start,low); //处理所有大的数字 quickSort(array,low+ 1 ,end); } } } |
递归实现,首先对数组分为左右两组,以基准数为标准,比基准数小的在左边,比基准数大的在右边,然后再进行组内排序
分类:
数据结构与算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
2020-03-05 url地址重叠