最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)二分查找算法

 更新時(shí)間:2017年09月21日 10:38:36   作者:nfzhlk  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)二分查找算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

二分查找算法:簡(jiǎn)單的說(shuō),就是將一個(gè)數(shù)組先排序好,比如按照從小到大的順序排列好,當(dāng)給定一個(gè)數(shù)據(jù),比如target,查找target在數(shù)組中的位置時(shí),可以先找到數(shù)組中間的數(shù)array[middle]和target進(jìn)行比較,當(dāng)它比target小時(shí),那么target一定是在數(shù)組的右邊,反之,則target在數(shù)組的左邊,比如它比target小,則下次就可以只比較[middle+1, end]的數(shù),繼續(xù)使用二分法,將它一分為二,直到找到target這個(gè)數(shù)返回或者數(shù)組全部遍歷完成(target不在數(shù)組中)

優(yōu)點(diǎn):效率高,時(shí)間復(fù)雜度為O(logN);
缺點(diǎn):數(shù)據(jù)要是有序的,順序存儲(chǔ)。

python的代碼實(shí)現(xiàn)如下:

#!/usr/bin/python env
# -*- coding:utf-8 -*-

def half_search(array,target):
  low = 0
  high = len(array) - 1
  while low < high:
     mid = (low + high)/2
     if array[mid] > target:
      high = mid - 1
     elif array[mid] < target:
      low = mid + 1
     elif array[mid] == target:
      print 'I find it! It is in the position of:',mid
      return mid
     else:
      print "please contact the coder!"
  return -1



if __name__ == "__main__":
  array = [1, 2, 2, 4, 4, 5]

運(yùn)行結(jié)果如下:

I find it! It is in the position of: 4
4
-1
I find it! It is in the position of: 0
0
-1

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

鄂伦春自治旗| 汉阴县| 吉首市| 武功县| 烟台市| 遵义县| 福鼎市| 达州市| 麻阳| 内江市| 积石山| 应用必备| 黄平县| 七台河市| 衡山县| 政和县| 沙河市| 玉田县| 江北区| 嘉兴市| 平舆县| 宜春市| 利川市| 瑞安市| 嘉义市| 峨眉山市| 枣庄市| 峨山| 峨眉山市| 呼伦贝尔市| 响水县| 都兰县| 娱乐| 吉隆县| 娄底市| 通化县| 蓝田县| 芦溪县| 江达县| 常宁市| 郁南县|