+ -
当前位置:首页 → 问答吧 → 妙趣横生的python 算法 之 折半查找

妙趣横生的python 算法 之 折半查找

时间:2011-02-12

来源:互联网

  1. # -*- coding:utf8 -*-
  2. import os
  3. import sys
  4. import math

  5. def halfSearch(arr=[1,2,3,4,5],find = 1):
  6.     '''
  7.     折半查找,2分查找
  8.     折半查找的前提是数据是有序的
  9.     算法:mid = Math.floor(low+hight/2)
  10.     '''
  11.     mid = 0
  12.     low = 0
  13.     high = len(arr) - 1
  14.     while(low<=high):
  15.         print low,high
  16.         mid = (low + high)/2
  17.         print mid
  18.         if(arr[mid]==find):
  19.             print "find %s index is %s",(find,mid)
  20.             return
  21.         else:
  22.             if(find > arr[mid]):
  23.                 low = mid + 1
  24.             else:
  25.                 high = mid - 1
  26.     print "Not Find"
  27.     return None
  28.    
  29. #运行脚本
  30. if __name__ =="__main__":
  31.     halfSearch()
  32.    
复制代码

作者: shift_1   发布时间: 2011-02-12

lz想说什么?

作者: 雨夜流星   发布时间: 2011-02-18