锁定老帖子 主题:妙趣横生的python 算法 之 折半查找
精华帖 (0) :: 良好帖 (0) :: 新手帖 (15) :: 隐藏帖 (2)
|
|
---|---|
作者 | 正文 |
发表时间:2010-05-04
最后修改:2010-05-13
代码已经更正 # -*- coding:utf8 -*- import os import sys import math def halfSearch(arr=[1,2,3,4,5],find = 1): ''' 折半查找,2分查找 折半查找的前提是数据是有序的 算法:mid = Math.floor(low+hight/2) ''' mid = 0 low = 0 high = len(arr) - 1 while(low<=high): print low,high mid = (low + high)/2 print mid if(arr[mid]==find): print "find %s index is %s",(find,mid) return else: if(find > arr[mid]): low = mid + 1 else: high = mid - 1 print "Not Find" return None #运行脚本 if __name__ =="__main__": halfSearch() 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-05-07
这个程序只能找出 3 和5 啊? 别的不是出错就是死循环。。。。
|
|
返回顶楼 | |
发表时间:2010-05-12
zfzaizheli 写道 这个程序只能找出 3 和5 啊? 别的不是出错就是死循环。。。。
看下程序就知道了,这个程序只有在找到数值的时候才会break,不然就无限死循环。 |
|
返回顶楼 | |
发表时间:2010-05-12
最后修改:2010-05-12
这个程序能用?除非第一个循环就能找到目标,不然貌似就是无限死循环啊.判断语句写反了
|
|
返回顶楼 | |
发表时间:2010-05-12
这个一旦找不到,定会死循环了哦。。
|
|
返回顶楼 | |
发表时间:2010-05-15
主要是搞不明白妙趣横生在哪里?
|
|
返回顶楼 | |
发表时间:2010-05-18
乱用形容词的标题党
|
|
返回顶楼 | |
发表时间:2010-06-24
第20行···
|
|
返回顶楼 | |
发表时间:2010-09-01
标题党。。。。。。。
|
|
返回顶楼 | |
发表时间:2011-01-10
mid = (low + high)/2
这句的写法在这里是否妥当 |
|
返回顶楼 | |