不稳定 来源于我们的一步步的操作
快排操作思路 从后面寻找小的 去兑换前面寻找的大的 然后直接交换 , ,
下面是实际

比如这样一个数组: 6 100 100 1
第一步 :根据算法操作 1显然会跟100交换 直接就交换了

看到这里应该都能看懂了(前提是有快排算法基础)

下面是我写的代码 注释较少 不宜看懂` private static int[] func(int[] a, int l, int r) {
if(l>=r){return null;}//比如 数组: 6 1 自己慢慢一步步推,能知道有个l是大于r的了
int start = a[l];
int origin_l = l;
int origin_r = r;

 while (l < r) {//while(a[r--]>=start){}这不对 加入4 ,1,2,3 //321都不满足 但是r还是减了1while (a[r] >= start && l < r) {r--;}while (a[l] <= start && l < r) {l++;}if (l < r) {int temp = a[r];a[r] = a[l];a[l] = temp;}}//走到这 说明lr重合了a[origin_l] = a[l];a[l] = start;//完成左半部分func(a, origin_l, l - 1);//完成右半部分func(a, l + 1, origin_r);return a;
}

}
代码注释较少 见谅 `

快排为什么不稳定 举例说明相关推荐

  1. 排序 ---- 快排(C语言)

    思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都要比另一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快排,整个过程可以递归进行,以此达到整个数据变成有序序列. 时 ...

  2. SEO快排的行业秘密,原来SEO快排套路这么深

    关于SEO快排,相信很多人并不陌生了.市面上的SEO优化公司,很多都在用SEO快排形式,但是你知道SEO快排套路有多深吗?今天,本文来揭秘一下SEO快排的行业内幕,别再被割韭菜了. SEO快排的基础概 ...

  3. Java常见的几种排序算法-插入、选择、冒泡、快排、堆排等

    本文就是介绍一些常见的排序算法.排序是一个非常常见的应用场景,很多时候,我们需要根据自己需要排序的数据类型,来自定义排序算法,但是,在这里,我们只介绍这些基础排序算法,包括:插入排序.选择排序.冒泡排 ...

  4. java快排原理_Java数据结构与算法——快速排序

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本篇文章介绍排序算法中最常用也是面试中最容易考到的排序算法--快排,包括快排的思 ...

  5. 三种快排及四种优化方式

    本文是转载文章,文章的来源:csdn博客 博主:silentsharer 文章: 三种快排及四种优化方式 博文地址:https://blog.csdn.net/hacker00011000/artic ...

  6. 快排的优化策略(3种快排4种优化)

    转自:http://blog.csdn.net/hacker00011000/article/details/52176100 1.快速排序的基本思想: 快速排序使用分治的思想,通过一趟排序将待排序列 ...

  7. Leetcode 912.排序算法(快排)

    难度:中等 频率:179 题目: 给你一个整数数组nums,请你将改数组升序排列. ** PS:快排需要注意的点** 1.快排 平均时间复杂度O(NlogN) 空间复杂度logn 不稳定. 2.基于比 ...

  8. 快排堆排归排三种排序的比较

    目录 快排 堆排序 归并排序 三种排序的比较 快排 快速排序中最简单的(递归调用) 注:倒序,和 列表中有大量重复元素时,时间复杂度很大 快排例子 注:快排代码实现(类似于二叉树 递归调用) 时间复杂 ...

  9. javascript 实现快排 ,三向切分快排

    比如说对数组快排的思路就是: 选取一个基准(可以选数组的开头最为基准,令 i = 0 ;j = array.length -1) 从arr[j]向前遍历(j--),当该值大于基准,则交换,退出循环(b ...

最新文章

  1. linux 库函数拦截,如何使用net_dev_add()API过滤和拦截Linux数据包?
  2. 168. Leetcode 134. 加油站 (贪心算法-模拟题目)
  3. bootstrap-datetimepicker bootstrap-datepicker bootstrap-timepicker 时间插件
  4. QAU 18校赛 J题 天平(01背包 判断能否装满)
  5. 利用延迟关联或者子查询优化超多分页场景
  6. 怎样使用navicat将mysql的数据表导出保存(转储SQL文件)
  7. LeetCode 209. 长度最小的子数组
  8. 【程序员自救指南】一个证书,让我哄好了小师妹
  9. Bzoj 3196 Tyvj 1730 二逼平衡树
  10. 学习实践:使用模式,原则实现一个C++自动化测试程序
  11. Tomcat 调优之从 Linux 内核源码层面看 Tcp backlog
  12. css border实现渐变
  13. 华为机试练习(十二)叠积木
  14. [源码解析]ESPnet脚本源码解析-aishell-asr.sh
  15. 图像标注工具python+opencv
  16. ISCC 2018 PWN WriteUp
  17. STM32学习笔记(5) 串口通讯-接收与发送
  18. 魅族2014发布会简单总结
  19. 使用js与画布实现小型植物大战僵尸
  20. lt;=gt;与lt;gt;的区别

热门文章

  1. css实现loading,CSS3实现18种Loading效果
  2. Python实现简单的闹钟/倒计时/番茄钟软件并打包成exe
  3. CMSIS-RTOS2 入门教程 [2]——RTX_Config.h配置
  4. 【SQL语句】SQL语句大全之技巧篇
  5. 鸿蒙大陆罪恶深渊哪里出,新魔界官方全面解析罪恶深渊生存要点
  6. python列表中怎么去掉空值_Python 如何删除列表中的空值
  7. K12526 找双亲和孩子
  8. 扬州职业大学计算机一级,扬州市职业大学教务管理系统入口http://jwgl.yzpc.edu.cn/...
  9. (附源码)springboot掌上博客系统 毕业设计 063131
  10. 找工作绝对没有问题的linux运维面试题(2)