快速排序的原理以及Java代码
package com.asiainfo.test;import java.util.Arrays;import sun.misc.Sort;public class QKSORT {//基本思路是:选择一个值为key 一般是选择左边第一个为key//先是从右向左找到小于 key 的值 将此值与 key 进行交换,由于key 是一个标记先不用交换 ;先是将low与high 值交换//然后是从左向右找到大于key的值 将此值与key 进行交换,由于key 是一个标记先不用交换,先将high 与low 进行交换public static int getkeyIndex(int []array,int low,int hight){int key=array[low];while(hight>low){while(array[hight]>key&&hight>low){//先是从右向左找到小于 key 的值 将此值与 key 进行交换,由于key 是一个标记先不用交换 ;先是将low与high 值交换hight--;}array[low]=array[hight];while(array[low]<key&&hight>low){//然后是从左向右找到大于key的值 将此值与key 进行交换,由于key 是一个标记先不用交换,先将high 与low 进行交换low++;}array[hight]=array[low];}array[low]=key; 排序的终止条件是左侧指针和右侧指针重合,即low=highreturn low;}public static void sort(int []array,int low,int hight){if(hight>low){int index=getkeyIndex(array, low, hight);// //产生一个序列以后,会出现两个序列,左边全比关键字小,右边全比关键字大sort(array,low,index-1);//递归,取排列序列的返回值为减去1为highsort(array,index+1,hight); //递归,取排序序列的返回值加1位low// //因为index左侧的值都比它小,右侧的值都比他大,所以result的值}}public static void main(String[] args) {int [] array={7,2,6,8,1,5,3};sort(array,0,array.length-1);System.out.println(Arrays.toString(array));
}
}
参考:https://blog.csdn.net/qq_34520606/article/details/76038671
快速排序的原理以及Java代码相关推荐
- JVM原理(Java代码编译和执行的整个过程+JVM内存管理及垃圾回收机制)
转载注明出处: http://blog.csdn.net/cutesource/article/details/5904501 JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.e ...
- 4列的计算机代码,干货 | 10分钟带你彻底了解column generation(列生成)算法的原理附java代码...
OUTLINE 前言 预备知识预警 什么是column generation 相关概念科普 Cutting Stock Problem CG求解Cutting Stock Problem 列生成代码 ...
- 克鲁斯卡尔算法原理及JAVA代码
原理 视频 最小生成树(Kruskal(克鲁斯卡尔)和Prim(普里姆))算法动画演示_哔哩哔哩_bilibili 文章 聊一聊数据结构图的克鲁斯卡尔算法 - 简书 (jianshu.com) 根据前 ...
- 归并排序的java代码_归并排序的原理及java代码实现
概述 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的.然后再把有序子序列合并为整体有序序列. 归并排序采用的是递归来实现, ...
- 一文彻底搞清楚数字签名的原理(java代码实现)
数字签名在数据的交互中一直都占据着很重要的地位,因此,这篇文章对其原理进行整理总结一下.最后再给出代码的实现. 一.简单认识 相信我们都写过信,在写信的时候落款处总是要留下自己的名字,用来表示写信的人 ...
- AC自动机算法详解以及Java代码实现
详细介绍了AC自动机算法详解以及Java代码实现. 文章目录 1 概念和原理 2 节点定义 3 构建Trie前缀树 3.1 案例演示 4 构建fail失配指针 4.1 案例演示 5 匹配文本 5.1 ...
- 梯度下降原理及线性回归代码实现(python/java/c++)
"梯度下降"顾名思义通过一步一步迭代逼近理想结果,当达到一定的精度或者超过迭代次数才退出,所以所获得的结果是一个近似值.在其他博客上面基本都有一个通俗的比喻:从山顶一步步下山.下面 ...
- java 字符串匹配_多模字符串匹配算法原理及Java实现代码
多模字符串匹配算法在这里指的是在一个字符串中寻找多个模式字符字串的问题.一般来说,给出一个长字符串和很多短模式字符串,如何最快最省的求出哪些模式字符串出现在长字符串中是我们所要思考的.该算法广泛应用于 ...
- Java基础学习总结(38)——Lombok(消除冗长的 java 代码)的使用和原理及安装、入门使用
前言: 逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下. lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码.特别是相对 ...
最新文章
- url 通配符解析成参数
- 面对世界竞争对手,如何拿到Google PDF开源项目PDFium?
- php msf dev product,3 框架运行环境
- java 中文字符和unicode编码值相互转化
- python token post403原因_Django的POST请求时因为开启防止csrf,报403错误,及四种解决方法...
- PWN-COMPETITION-HGAME2022-Week4
- windows下的工具链 树莓派_Windows下交叉编译Qt 5.14.2至树莓派平台 QEMU模拟树莓派...
- 查询php copy函数源码,PHP copy函数使用案例代码解析
- [Usaco2006 Nov] Fence Repair 切割木板
- 2008服务器文件共享,2008服务器文件共享
- 计算机公式固定数值符号,【2人回答】Excel如何锁定,如何Excel某计算公式中锁定其中一个数值?-3D溜溜网...
- html掷骰子游戏的代码,掷骰子的小程序 HTML5
- 【NOIP2011提高组】观光公交
- MFC真的过时了吗?C++是否真的适合做GUI界面?
- 硬盘存储双寡头之争 希捷重注中国市场或赢大丰收
- oracle索引创建及删除
- MOT:Metrics MOTA
- MPEG音频编码原理及编码器调试
- IDEA添加外部插件-yuicompressor压缩js/css
- js Date中的T和Z (实用,赞)
热门文章
- java学习(10):数据类型
- linux lnmp yum版安装
- Qt6.2.1使用clang格式化代码
- Linux Qt打包应用程序--利用linuxdeployqt
- linux快速php,Linux 下的这些高效指令,是你快速学习的神器
- 记一次MySQL手工注入
- [转载][QT][SQL]sql学习记录3_sqlite之update delete like
- install kinect driver for ARM---38
- mysql批量生成修改表和列注释语句
- 一个简单的C#获取Session、设置Session类文件