本文通过实例代码给大家详细介绍了python 二分查找和快速排序,的相关知识,需要的朋友可以参考下
思想简单,细节颇多;本以为很简单的两个小程序,写起来发现bug频出,留此纪念。
#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)
总结
Atas ialah kandungan terperinci python实现二分查找与快速排序实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!