Python版的快排,使用递归。

1.设置递归终止条件,当元素个数<1时

2.从列表中pop出一个元素pv

3.列表中的剩余值与pv进行对比,大的放入smaller列表,小的放入larger列表

4.返回qs(smaller)+[pv]+qs(larger)

代码如下:

 def quicksort(array):
smaller=[];larger=[]
if len(array)<1:
return array
pv=array.pop()
for num in array:
if num>pv:
larger.append(num)
else:
smaller.append(num)
return quicksort(smaller)+[pv]+quicksort(larger) if __name__=='__main__':
numarray=[5,4,3,6,7,2,9,1,2,9]
numarray=quicksort(numarray)
sarray=['hahahahah','heheheheh','abc','every dog has its lucky day']
sarray=quicksort(sarray)
print(numarray,'\n',sarray)

【Python&Sort】QuickSort的更多相关文章

  1. 【Python数据分析】Python3多线程并发网络爬虫-以豆瓣图书Top250为例

    基于上两篇文章的工作 [Python数据分析]Python3操作Excel-以豆瓣图书Top250为例 [Python数据分析]Python3操作Excel(二) 一些问题的解决与优化 已经正确地实现 ...

  2. 【Python数据分析】Python3操作Excel(二) 一些问题的解决与优化

    继上一篇[Python数据分析]Python3操作Excel-以豆瓣图书Top250为例 对豆瓣图书Top250进行爬取以后,鉴于还有一些问题没有解决,所以进行了进一步的交流讨论,这期间得到了一只尼玛 ...

  3. 利用Dnspod api批量更新添加DNS解析【python脚本】 - 推酷

    利用Dnspod api批量更新添加DNS解析[python脚本] - 推酷 undefined

  4. 【python进阶】详解元类及其应用2

    前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...

  5. 【python进阶】Garbage collection垃圾回收2

    前言 在上一篇文章[python进阶]Garbage collection垃圾回收1,我们讲述了Garbage collection(GC垃圾回收),画说Ruby与Python垃圾回收,Python中 ...

  6. 【python进阶】深入理解系统进程2

    前言 在上一篇[python进阶]深入理解系统进程1中,我们讲述了多任务的一些概念,多进程的创建,fork等一些问题,这一节我们继续接着讲述系统进程的一些方法及注意点 multiprocessing ...

  7. 【python图像处理】图像的缩放、旋转与翻转

    [python图像处理]图像的缩放.旋转与翻转 图像的几何变换,如缩放.旋转和翻转等,在图像处理中扮演着重要的角色,python中的Image类分别提供了这些操作的接口函数,下面进行逐一介绍. 1.图 ...

  8. 【Python 开发】Python目录

    目录: [Python开发]第一篇:计算机基础 [Python 开发]第二篇 :Python安装 [Python 开发]第三篇:python 实用小工具

  9. 【Python教程】《零基础入门学习Python》(小甲鱼)

    [Python教程]<零基础入门学习Python>(小甲鱼) 讲解通俗易懂,诙谐. 哈哈哈. https://www.bilibili.com/video/av27789609

随机推荐

  1. kibana使用的lucene查询语法

    kibana在ELK阵营中用来查询展示数据elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 kibana4官方演示页面 全文搜索 在搜索栏输入login,会返回所有字段值 ...

  2. js-时间函数相互转化

    1.日期函数 获取当前时间对象 var date = new Date(); 2.日期函数 => 时间对象 (yyyy-mm-dd hh:mi:ss => 时间对象) endLogTime ...

  3. emacs 使用教程

    http://www.cnblogs.com/liuchaogege/p/4464211.html

  4. 前端技术——WebFont与Sprite

    一.WebFont web font是应用在web中的一种字体技术,在CSS中使用font-face定义新的字体. 我们在文档中显示的字体应该在系统中能找到才会正常显示,比如你在word中使用了黑体字 ...

  5. 使用pycharm+pyqt5 调取界面程序

    一.使用QtDesigner制作界面 1)打开的界面设计工具QtDesigner,如图: 2)新建窗体,选择Main Window: 3)分别在窗口添加如下控件,Calendar.3个pushButt ...

  6. 形象化理解nice值越高优先级越低

    当我们说起某个人很nice的时候,通常指的是那个人心地善良,很好说话,很容易相处.(相反,aggressive的人很可能是不nice的,因为老想抢夺别人的东西,尤其是在资源有限的情况下,恨不得一个蛋糕 ...

  7. WEB典型应用

  8. Js控制iphone端的input/textarea元素失去焦点时隐藏键盘

    原文http://www.it165.net/pro/html/201404/12672.html function objBlur(obj, time){ if(typeof obj != 'str ...

  9. sass 安装和使用

    1,安装ruby :检查本地是否安装ruby: #ruby -v 2,安装sass: #gem install sass 3,检查是否安装成功:#sass -v 4,.scss文件不能直接被浏览器解析 ...

  10. HC-05与HC-06的AT指令的区别

    蓝牙HC-05与HC-06对比指令集 高电平->AT命令响应工作状态     低电平->蓝牙常规工作状态 <重新上电表示完成复位> HC-05 可以主从切换模式,但是HC-06 ...