python快速查找算法应用实例,python快速查找
python快速查找算法应用实例,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程序设计有所帮助。
二分:要求待查找序列是排完序的,即是有序的序列。
哈希:能够比较好的解决位置冲突的情况下哈希查找都是比较快速的。主要是hash函数的选择。
二叉排序树:如果树比较平衡的情况下,这种查找的复杂度是log(n),但是如果很偏,比如一直都只插入左儿子节点(这样就和链表一样了),那么就比较糟糕了。
快速查找算法 有叫做二分发,前提是必须对有序数组中的元素进行递归查找, 首先假设目标在数组中中间位置,与中间位置比较,如大于,则重左侧开始查找,如小于,则右侧开始查找,这样每次查找都能排除当前的一半,
相关内容
- python人人网登录应用实例,python人人应用实例
- 编程语言Python的发展史,编程语言python
- python实现自动登录人人网并访问最近来访者实例,pyt
- python的re模块应用实例,pythonre应用实例
- python网络编程实例简析,python编程实例简析
- Python实现的一个简单LRU cache,pythonlrucache
- Python实现从url中提取域名的几种方法,pythonurl
- Python中unittest用法实例,pythonunittest
- Python中itertools模块用法详解,pythonitertools
- python迭代器实例简析,python实例简析
评论关闭