分治法---折半查找(python描述)
来源:互联网 发布:mysql常用命令总结 编辑:程序博客网 时间:2024/06/10 18:46
折半查找是一种高速有效的查找算法,要求输入的元素必须有序;
代码如下:
def binsearch(R,key): height=len(R)-1#上界设置为取得待排序序列长度 low=0#下届设置为1 mid=int((low+height)/2)#中间值 while(low<=height): if key==R[mid]: return mid #找到答案返回找到值的位置 elif key<R[mid]: height=mid-1 #如果key小于中间值则上界下移到中间值的下一位 else: low=mid+1 #如果key大于中间值则下界上移到中间值的上一位 mid=int((low+height)/2) #重置中间值 return -1 #未找到返回-1def main(): key=3 R=[1,2,3,4,5,6,7,8] indexNum=binsearch(R,key) print("原始序列为:"+str(R)) print("Key为:"+str(key)) if indexNum==(-1): print("未找到!") else: print("key的位置为: "+str(indexNum+1))if __name__=="__main__": main()
运行结果:
原始序列为:[1, 2, 3, 4, 5, 6, 7, 8]
Key为:3
key的位置为: 3
0 0
- 分治法---折半查找(python描述)
- 折半查找(分治法)
- 分治法-二分查找(c语言描述)
- 【分治法】折半查找及C++代码实现
- 折半查找法(二分法)
- 折半查找法(递归)
- 折半查找法(二分查找法)
- 折半查找法(二分查找)
- 查找算法(1)折半查找法
- 二分查找法 (折半法)
- 折半查找法(C语言)
- 折半查找法(迭代)
- 二分(折半)法查找--Java
- 折半查找法(递归)
- 折半查找法
- 汇编折半查找法
- 折半查找法
- 折半查找法
- dbms_pipe
- TCP/IP详解--发送ACK和RST的场景
- jvm详解(原文地址和jvm所有知识:http://pengjiaheng.iteye.com/blog/518623)
- hdu1097 A hard puzzle
- 3 python replace以及split用法
- 分治法---折半查找(python描述)
- 【记录】JavaWeb中自己遇到的小问题
- MSP430程序升级
- 关于solrcloud 排序控制问题
- AD7352的关于verilog代码
- 项目的简单总结一 -- 关于对贝塞尔和shapelayer结合使用的动画特效
- 链表的基本操作
- docker 小点
- Jquery实现数据双向绑定(赋值和取值),类似AngularJS