python快速查找算法应用实例


Posted in Python onSeptember 26, 2014

本文实例讲述了Python快速查找算法的应用,分享给大家供大家参考。

具体实现方法如下:

import random
def partition(list_object,start,end):
  random_choice = start
  #random.choice(range(start,end+1))
  #把这里的start改成random()效率会更高些
  x = list_object[random_choice]
  i = start
  j = end
  while True:
    while list_object[i] < x and i < end:
      i += 1
    while list_object[j] > x:
      j -= 1
    if i >= j:
      break
    list_object[i],list_object[j] = list_object[j],list_object[i]
  print list_object
  #list_object[random_choice] = list_object[j]
  #list_object[j] = random_choice
  return j

def quick_sort(list_object,start,end):
  if start < end:
    temp = partition(list_object,start,end)
    quick_sort(list_object,start,temp-1)
    quick_sort(list_object,temp + 1 ,end)
    
a_list = [69,65,90,37,92,6,28,54]
quick_sort(a_list,0,7)
print a_list

程序测试环境为Python2.7.6

输出结果如下:

[54, 65, 28, 37, 6, 69, 92, 90]
[6, 37, 28, 54, 65, 69, 92, 90]
[6, 37, 28, 54, 65, 69, 92, 90]
[6, 28, 37, 54, 65, 69, 92, 90]
[6, 28, 37, 54, 65, 69, 90, 92]
[6, 28, 37, 54, 65, 69, 90, 92]

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
你所不知道的Python奇技淫巧13招【实用】
Dec 14 Python
Python多线程实现同步的四种方式
May 02 Python
DataFrame中的object转换成float的方法
Apr 10 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
IntelliJ IDEA安装运行python插件方法
Dec 10 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
Python图像处理模块ndimage用法实例分析
Sep 05 Python
Python利用Scrapy框架爬取豆瓣电影示例
Jan 17 Python
python tkinter之 复选、文本、下拉的实现
Mar 04 Python
利用Python实现斐波那契数列的方法实例
Jul 26 Python
pycharm中使用request和Pytest进行接口测试的方法
Jul 31 Python
python求众数问题实例
Sep 26 #Python
python字典序问题实例
Sep 26 #Python
python计算书页码的统计数字问题实例
Sep 26 #Python
python实现从web抓取文档的方法
Sep 26 #Python
python实现udp数据报传输的方法
Sep 26 #Python
python使用Berkeley DB数据库实例
Sep 26 #Python
python实现通过shelve修改对象实例
Sep 26 #Python
You might like
PHP面向对象编程快速入门
2006/12/14 PHP
请php正则走开
2008/03/15 PHP
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
PHP中round()函数对浮点数进行四舍五入的方法
2014/11/19 PHP
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
jQuery插件slides实现无缝轮播图特效
2015/04/17 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
详解Vue.js入门环境搭建
2017/03/17 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
初步理解Python进程的信号通讯
2015/04/09 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
利用python写个下载teahour音频的小脚本
2017/05/08 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
Python数据预处理之数据规范化(归一化)示例
2019/01/08 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
体育教师求职信
2014/05/24 职场文书
节能环保演讲稿
2014/08/28 职场文书
车贷收入证明范本
2014/09/14 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
Redis实现分布式锁的五种方法详解
2022/06/14 Redis