Python实现各类数据结构和算法---折半查找
2014-03-13 22:24
621 查看
递归和非递归形式实现二分查找
#coding:utf-8
a=[1, 2, 3, 4, 5, 6, 8, 20, 24, 31, 35]
#-----------------递归二分查找------------------
b=10
def binarySearch(array,n,left,right):
mid=left+(right-left)/2
if(left>right):
print 'find failed'
return -1
else:
if(array[mid]>n):
return binarySearch(array, n, left, mid-1)
elif(array[mid]<n):
return binarySearch(array, n, mid+1, right)
else:
print 'find it'
return mid
print binarySearch(a, b, 0, len(a)-1)
#-------------------非递归查找------------------------
c=5
def binary_Search(a,n):
low = 0
high = len(a)-1
while low <= high:
middle = (low+high)/2
if a[middle] == n:
print 'find it'
return middle+1
elif a[middle] < n:
low = middle + 1
else:
high = middle - 1
print 'find failed'
return -1
print binary_Search(a,c)
#coding:utf-8
a=[1, 2, 3, 4, 5, 6, 8, 20, 24, 31, 35]
#-----------------递归二分查找------------------
b=10
def binarySearch(array,n,left,right):
mid=left+(right-left)/2
if(left>right):
print 'find failed'
return -1
else:
if(array[mid]>n):
return binarySearch(array, n, left, mid-1)
elif(array[mid]<n):
return binarySearch(array, n, mid+1, right)
else:
print 'find it'
return mid
print binarySearch(a, b, 0, len(a)-1)
#-------------------非递归查找------------------------
c=5
def binary_Search(a,n):
low = 0
high = len(a)-1
while low <= high:
middle = (low+high)/2
if a[middle] == n:
print 'find it'
return middle+1
elif a[middle] < n:
low = middle + 1
else:
high = middle - 1
print 'find failed'
return -1
print binary_Search(a,c)
相关文章推荐
- Python实现各类数据结构和算法---动态规划之最长公共子序列
- Python实现各类数据结构和算法---计数排序
- Python实现各类数据结构和算法---直接选择排序
- Python实现各类数据结构和算法----归并排序
- 实现折半查找的算法(数据结构)
- 常见数据结构与算法的 Python 实现
- python 下的数据结构与算法---8:哈希一下【dict与set的实现】
- (二叉树)谈一谈各类算法和数据结构的c++实现以及相关操作的复杂度(二)
- 用Python实现的数据结构与算法:队列
- python数据结构与算法 18 无序列表的实现
- 数据结构与算法之动态规划算法及其python实现
- Python实现的数据结构与算法之双端队列详解
- 用Python实现的数据结构与算法:队列
- python数据结构与算法——图的基本实现及迭代器
- Python数据结构与算法之字典树实现方法示例
- 用Python实现的数据结构与算法:链表
- 数据结构(基于python实现)02-算法复杂度分析
- 利用python的双向队列(Deque)数据结构实现回文检测的算法
- Python数据结构与算法1前言
- python实现simhash算法实例