python快速查找算法应用实例

yipeiwu_com6年前Python基础

本文实例讲述了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程序设计有所帮助。

相关文章

Django集成百度富文本编辑器uEditor攻略

首先从 ueEditor官网 下载最新版本的包,目前官网上提供了ASP、.NET、PHP、JSP版本的,django版本只有一个第三方个人开发的,但看上出配置起来稍微复杂一点。 这里不介...

举例讲解Python设计模式编程中的访问者与观察者模式

访问者模式 我觉得Visitor模式是在补修改已有程序结构前提下,通过添加额外的访问者完成对代码功能的拓展 为什么这样用?当你的类层次较多,在某层结构中增加新的方法,要是在基类上面添加或...

python中input()与raw_input()的区别分析

python中input()与raw_input()的区别分析

使用input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的 纯数字输入 当输入为纯数字时 input返回的是数值类型,如int,f...

讲解Python中if语句的嵌套用法

 可能有这样一种情况,当你想检查其他条件后一个条件解析为真。在这种情况下,可以使用嵌套的if结构。 在嵌套的 if 语句结构,可以在一个 if... elif... else...

分析在Python中何种情况下需要使用断言

这个问题是如何在一些场景下使用断言表达式,通常会有人误用它,所以我决定写一篇文章来说明何时使用断言,什么时候不用。 为那些还不清楚它的人,Python的assert是用来检查一个条件,如...