国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-01-04 16:46:57
字體:
供稿:網(wǎng)友

二分查找算法:簡(jiǎn)單的說,就是將一個(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 -1if __name__ == "__main__":  array = [1, 2, 2, 4, 4, 5]

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

I find it! It is in the position of: 44-1I find it! It is in the position of: 00-1

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 钦州市| 平顶山市| 清徐县| 崇左市| 纳雍县| 四平市| 三门峡市| 山阳县| 永嘉县| 云安县| 巴青县| 金川县| 安泽县| 马尔康县| 中卫市| 宁河县| 定结县| 江北区| 依兰县| 汕尾市| 介休市| 鹿泉市| 宿迁市| 曲阜市| 阿城市| 江北区| 勐海县| 湖南省| 灌阳县| 通城县| 孟村| 万安县| 玉山县| 永清县| 定州市| 理塘县| 东平县| 聊城市| 那坡县| 从江县| 宝兴县|