Java快速排序QuickSort(实例)
时间:2019-04-07
本文章向大家介绍Java快速排序QuickSort(实例),主要包括Java快速排序QuickSort(实例)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
快速排序
----------------------------------------------------------------------
思想
如上图:每趟快速排序开始时,设置一个key,key=array[low],然后由high向左,找到小于key的值,复制到low位置,然后再由low向右找到大于key的值,复制到high位置,直到low=high结束,
将key的复制到low位置。
上图中第一轮划分后找到32的位置,然后递归的对32左边和右边的进行排序。
代码:
package Sort; import java.util.Arrays; public class QuickSort { public static void main(String[] args) { int array[]={32, 12, 7, 78, 23, 45}; quickSort(array,0,array.length-1); System.out.println(Arrays.toString(array)); } public static void quickSort(int array[],int left,int right) { if(left>=right) { return ; } int i=left; int j=right; int key=array[left]; while(i<j) { while(i<j&&array[j]>key) { j--; } array[i]=array[j]; //从后往前找到第一个比key小的数与array[i]交换; while(i<j&&array[i]<key) { i++; } array[j]=array[i]; //从前往后找到第一个比key大的数与array[j]交换; } array[i]=key; //一趟快排之后已经将key的位置找到。 quickSort(array,left,i-1); //对key左边的进行排序 quickSort(array,i+1,right); //对key右边的进行排序 } }
以上这篇Java快速排序QuickSort(实例)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
- 从APK解密到批量获取他人信息
- React native和原生之间的通信
- 移动云存储服务平台Parse下的iOS安全分析
- 经典算法学习之回溯法
- 渗透测试系统BackBox Linux 4.1发布
- CMS漏洞检测工具 - CMSmap
- 基因组分析中多物种同源基因的鉴定和筛选
- SpringMVC类型转换器、属性编辑器PropertiesEditor源码分析CustomDateEditor源码分析TypeConverterDelegate源码分析
- Intellij IDEA 插件开发之自建插件仓库
- 空Word文档附件:绕过垃圾邮件过滤的新方法
- SpringMVC基本使用关于DisptacherServlet关于ServletContainerInitializer最简单配置接收参数路径变量表单变量
- 测序数据可视化 (一)
- Android log日志
- Activity的生命周期
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- SAP Spartacus CmsService的CmsActions.LoadCmsComponent
- SAP Spartacus OccEndpointsService单元测试的依赖注入
- Python利用PyPDF2库获取PDF文件总页码实例
- TypeScript里get属性的实现
- SAP Spartacus OccEndpointsService单元测试之getBaseEndpoint
- html+css入门基础案例之圣诞那些事
- 建议收藏备查!MySQL 常见错误代码说明
- html+css入门基础案例之页面设计
- Github 星标 8K+ 这款国人开源的 Redis 可视化管理工具,真香...
- CSS3 2D转换
- CSS3 3D转换
- python传到前端的数据,双引号被转义的问题
- H5C3综合案例
- 移动web开发之rem适配布局
- Android面试题问答整理