快排算法的Java实现

快排的核心是找到在无序数组中找到一个数,然后将比他小的数字放在他的左边,比他大的数字放在他的右边。然后递归的对左右两边进行继续排序,直到完成,下面看算法的实现:

public static void sort(int a[], int start, int end) {if (start >= end) {return;}//获取到已经排好序的数字,左边数字都比他小,右边都比他大。int flag = getFlag(a, start, end);sort(a, start, flag - 1);sort(a, flag + 1, end);}private static int getFlag(int[] a, int start, int end) {int begin = start;int over = end;//选取第一个为目标数字。int num = a[start];int flag = start;while (begin < over) {//从左找到第一个比目标数字大的。while (begin < end && a[begin] <= num){begin++;} //从右找到第一个比目标数字小的。           while (over > start&& a[over] >= num){over--;}//如果begin小于end且值大于,则交互两个数字。if(begin < over&&a[begin] > a[over]) swap(a, begin, over);}//交换目标数字与上面循环完的数字的位置。swap(a, over, flag);return over;
}private static void swap(int[] a, int begin, int end) {int temp = a[begin];a[begin] = a[end];a[end] = temp;
}

快排算法的Java实现相关推荐

  1. java快排算法解读,java 快排的思路与算法

    java 快排的思路与算法 有时候面试的时候的会问道Arrays.sort()是怎么实现的,我以前根本不知道是什么东西,最近点进去看了一下.直接吓傻, //看到这个时候还是比较淡定的,可怕的事情来了. ...

  2. java实现快排算法

    前面我详细讲解了快排算法,现在我们用java来实现 直接上代码 package ttt;public class kuaisupaixu {public static int[] quickSort( ...

  3. Java快排算法详解

    快排算法底层基本思想: 先取出数列中的第一个数作为基准数. 将数列中比基准数大的数全部放在他的右边,比基准数小的数全部放在它的左边. 然后在对左右两部分重复第二步,直到各个区间只有一个数. 具体Jav ...

  4. 力扣刷题记录---快排算法

    AcWing 785. 快速排序 对快排算法思想就不描述了,针对快排递归过程中边界的取值做了总结: x为每次递归中,选取的基准数(枢轴) 如果x = q[i]或者x = q[l + r >> ...

  5. python实现快排算法(quicksort)

    python实现快排算法(quicksort) 快速排序是对冒泡排序的一种改进.它的基本思想是:通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后 ...

  6. 快排算法的针对重复键值的优化

    上一节讲了快排算法在序列基本有序的情况下的两种优化方法,这一节我们对新的测试用例进行测试,测试用例如下所示: int main() {//测试 - 待排序列的重复值很多int n = 400000;i ...

  7. 三路快排算法加强版(三路快排的再次改进)

    :不要忘记初心哈 :) 理论依据 快排算法的缺陷及其逐一改进 三路快排尽可能三等份划分区间 通过待排元素的区间长度划分? 通过待排元素的最值之差划分? 直接使用待排元素的最大值划分? 实验数据 大范围 ...

  8. 快排算法 java_快排算法的实现与讲解(java/C++)

    快排的算法其实不复杂,但是很少时候,偶尔整的自己头晕,所以写一篇博客,以免以后忘记. 假设我们的数组为:{5,2,1,8,9,3,7,0,4,6},一共10个数字,现在需要将这个数组进行排序.首先我们 ...

  9. android 百度移动搜索 url 参数,百度刷站内快排算法参数-百度搜索URL参数比较详解...

    [假如您搜索到此页面必然要打开]或者对你有辅佐,相信你必然在研究百度快速排名算法-刷点击,发包,线程,站内刷等等,下面是百度最新的参数,对快排或者有些辅佐. 新增参数(移动端) word=代表手机移动 ...

最新文章

  1. Nature方法 | 三代长读长宏基因组组装软件metaFlye
  2. 低版本不能使用php 命令,创建软链接
  3. 为什么叫python编程-为什么建议大家学习Python编程呢?老男孩Python入门
  4. [Python]从零开始学python——Day03 字典,元组
  5. matlab中GUI的属性检查器中的XLimMode是什么_如何在Matlab中使用GUI做一个简易音乐播放器? ---- (二)GUIDE...
  6. HDU3788 ZOJ问题
  7. Visual Studio 2005 Web Application Projects
  8. 网络TCp数据的传输设计(黏包处理)
  9. 关于出现Not an editor command: Bundle ‘**/*.vim‘的解决方案【转】
  10. create-react-app脚手架中配置webpack的方法
  11. Redis学习之字典源码分析
  12. 一分钟教你如何判断ip地址是外网还是内网
  13. php图片显示不了,如何解决php显示不了图片的问题
  14. python pandas多条件筛选
  15. 非监督多类域适应:理论,算法和实践
  16. 计算几何入门 1.4:凸包的构造——Jarvis March算法
  17. 国产软件不背黑锅,4款强大又实用的电脑软件,用了舍不得卸载
  18. 导出计算机配置信息吗,怎么导出电脑配置信息
  19. 外包公司,真的是互联网“二等公民”吗?
  20. python数据收集整理教案_(完整版)《数据收集整理(例1)》教案

热门文章

  1. php图片长宽处理,PHP重置JPG图片尺寸的函数
  2. android tcp tcp阻塞 线程不运行,Android tcp优化
  3. bootstrap 隐藏元素_Bootstrap中折叠面板的样式内容
  4. 报名|第2期“DI极客说”,揭秘决策AI创新应用带来的行业变革
  5. 商汤科技实习生招募专场 | 与大咖畅聊AI拿OFFER,赢商汤年会入场券
  6. 每周一起读 × 招募 | ICML 2019:基于粒子的变分推断加速方法
  7. 蓝桥备赛第三周 倍增+贪心+素数+约数
  8. Pytorch的网络结构可视化:Netron与TensorBoardX
  9. C++结构体多级排序的三种方法
  10. poj3254 Corn Fields 状压DP入门