快速排序时间复杂度:ON*log2 N)空间复杂度:O1不稳定。

  这个算法我试过针对单链表进行实现,但发现由于单链表从表尾反向遍历不方便,因此该算法不适合针对单链表进行实现,

下面我实现经典的场景:针对数组来实现该算法。  

//划分阶段:选择一个基准数,通常选择开头的一个数,
//然后以该基准数为基准进行划分:小于该基准数的放在该数左边,大于的放在该数右边。
//最后返回该基准数最终存放位置下标;
int partition_(int A[], int low, int high){int p = A[low];while (low<high){while (low<high&&A[high] > p) high--;while (low<high&&A[low] < p) low++;if (low < high){swap(A[low], A[high]); if (A[low] == p&&A[high] == p)low++;}}A[low] = p;return low;
}//递归调用进行快速排序
void quickSort(int A[], int low, int high){if (low < high){int pivotpos = partition_(A, low, high);quickSort(A,low,pivotpos -1);quickSort(A,pivotpos+1,high);}
}

这里我只是用C++来实现了该算法,后面有机会我会写一篇java版的实现博文。

转载于:https://www.cnblogs.com/lordcheng/p/7326801.html

[原创]快速排序(C++版)相关推荐

  1. 高数重要极限证明原创中英文对照版

    高数重要极限证明原创中英文对照版 重要极限 Important Limit 作者 赵天宇 Author:Panda Zhao 我今天想在这里证明高等数学中的一个重要极限: Today I want t ...

  2. 快速排序(C++版)

    #include <iostream> #include <vector>using namespace std;void quickSort(vector<int> ...

  3. 快速排序 - python版超详细讲解

    快速排序 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所 ...

  4. WaveTone 2.67原创汉化版扒谱辅助教程

    深度解析音频结构 精准扒谱,扒和弦分析! WaveTone 是音频后期制作,深度学习编曲的好助手! 汉化版支持中英文自由切换,重启应用程序生效! 支持导出主流音频Wav格式和MIDI键盘记录文件!可以 ...

  5. 软考-软件设计师笔记【原创无样式版】需要笔记请联系

    越努力,越幸运!!! 计算机系统基础 (一)CPU的功能 (1)程序控制功能.CPU通过执行指令来控制程序的执行顺序. (2)操作控制. (3)时间控制. (4)数据处理.CPU最根本的任务. (二) ...

  6. php原创程序,在线伪原创程序php版

    各位站长朋友想必都为网站内容原创的问题头疼吧,作为一个草根站长,要想自己写原创文章,那是不可能的,当然我不是说你一篇也写不出来.以个人站长的人力来说,写原创文章不太现实,光时间就是问题. 也许有的站长 ...

  7. 原创_移动版天邑TY1611_晶晨S905L3-B_RTL8822CS机顶盒免拆卡刷包及线刷机包刷机教程

    今天作者跟大家分享一下关于移动TY1611机顶盒刷机教程, 此型号 分高安及非高安版本,所以下载固件包的时候请注意甄别: 下面我把主板拍给大家看下: 原创内容 请勿转载引用或修改后偷偷的用,一经发现 ...

  8. linux sys伪用户作用,【原创】Linux版 对sys用户进行审计的示例

    更多精彩内容尽在 我们在操作数据库的时候,知道SYS用户的权限是最大的干什么事很方便,同时带来的问题就是非常危险,没有人可以束缚住.因此我们有时需要对SYS用户进行审计 SYS@LEO1>sho ...

  9. 北京地铁线路图纯算法附带求极权值(原创) 性能提升版

    先上一张大家都看过而且熟悉的北京地铁线路图: 其中本人由于时间时间问题所以就写入了:昌平线,1,2,4,5,6,8,10,13共9条线路图: 接下来我说说我的思路 我的思路是这样的: 首先定义变量b, ...

最新文章

  1. 梅卡曼德机器人| 机器视觉算法、深度学习算法、软件开发等海量岗位
  2. A*寻路算法的探寻与改良(三)
  3. 如何设计一个高可用、高并发秒杀系统
  4. 【Python CheckiO 题解】I Love Python!
  5. CentOS 系统盘迁移
  6. Adjacent Bit Counts(01组合数)
  7. linux socket版本 can,linux socket can程序cantool
  8. 音视频录制基础原理概念
  9. 给你 2021 最酷网页设计指南!
  10. rom大小 stm32f205_最小的基于STM32F205VE的系统板
  11. 项目配置管理工具研究
  12. Auto.js找图找色常用功能
  13. 学堂在线android客户端,学堂在线学生登录入口app
  14. 服务器内网与外网的四大区别?
  15. STM32学习之Keil5软件配置
  16. 攻击方法与工业控制系统安全
  17. php 图片扭曲,把一张图片变形扭曲成各种不同的长宽
  18. Http 请求常见状态码报错(200/404/500)
  19. 全球与中国超高纯度热交换器市场深度研究分析报告
  20. 《振动力学基础与MATLAB应用》课后练习-第一章

热门文章

  1. java merge json出错删除相同的json
  2. json对象数组按对象属性排序
  3. Matlab多项式回归实现
  4. ubuntu14.04 下emacs 24 配置
  5. 2015年必火的五个Html5移动开发工具推荐
  6. MySQL相关常用命令
  7. 洛谷P4383 林克卡特树
  8. PHP中exec()函数执行系统命令失败
  9. 服务器系统的王者——Linux 系统
  10. java 泛型详解-绝对是对泛型方法讲解