思想简单,细节颇多;本以为很简单的两个小程序,写起来发现bug频出,留此纪念。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#usr/bin/env python
def binary_search(lst,t):
low = 0
height = len (lst) - 1
quicksort(lst, 0 ,height)
print lst
while low< = height:
mid = (low + height) / 2
if lst[mid] = = t:
return lst[mid]
elif lst[mid]>t:
height = mid - 1
else :
low = mid + 1
return - 1
def quicksort( lst, left , right):
low = left
high = right
key = lst[left]
if left> = right:
return 0
while low<high:
while low<high and key<lst[high]:
high = high - 1
lst[low] = lst[high]
while low<high and key>lst[low]:
print lst[low]
low = low + 1
lst[high] = lst[low]
lst[low] = key
quicksort( lst , left ,low - 1 )
quicksort( lst , low + 1 , right)
if __name__ = = '__main__' :
print binary_search([ 4 , 8 , 1 , 5 , 10 , 2 , 12 , 3 , 6 , 9 ], 4 )
|
总结
以上所述是小编给大家介绍的python 二分查找和快速排序实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://blog.csdn.net/qq_25073253/article/details/78225816