91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中如何實現二分查找

發布時間:2021-07-05 15:02:39 來源:億速云 閱讀:148 作者:Leah 欄目:大數據

本篇文章為大家展示了Python中如何實現二分查找,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

二分查找是一個用的非常多的查找算法,目的是從一個列表list里面,找到一個你想要的數,記做目標數據,返回這個數的索引,比如[5, 12, 3], 想找到12在哪,然后答案應該是1。直接的方法是從頭開始,一個個比較,如果相等就返回,先拿5和12比, 不相等就繼續下一個,12 = 12, 所以返回1,但是如果這個列表很大, 這樣查找起來就比較慢,時間復雜度是O(n),而二分查找是一個比較高效的查找方法,數學里面學過二分法,我覺得道理是類似的。二分查找的時間復雜度是O(logn)。

二分查找的一般過程為先找到數組的中間數據,然后對比目標數據和中間數據,如果相等則返回中間數據,如果目標數據大于中間數據,則繼續在列表的右邊按照相同方法去尋找。否則在左邊尋找;這里要注意的是,查找過程中的列表是經過排序以后的,所以這里比較的時候才會按大小去搜索。

下面是用Python實現二分查找的一個栗子



def binary_search(array, query_value):
   low, high = 0, len(array) - 1
   while low <= high:
       mid = low + (high - low) // 2
       mid_val = array[mid]
       if mid_val == query_value:
           return mid
       elif mid_val < query_value:
           low = mid + 1
       else:
           high = mid - 1
   return None


def main():
   array_1 = [1, 10, 20, 30, 180]
   print binary_search(array_1, 20)
   print "- * - " * 5
   array_2 = [2, 1, 3, 3, 5, 4, 1, 6]
   sorted_array = sorted(array_2)
   print "sorted_array : ", sorted_array
   print(binary_search(sorted_array, 5))


if __name__ == "__main__":
   main()

上述內容就是Python中如何實現二分查找,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

九龙城区| 璧山县| 安吉县| 余姚市| 隆昌县| 千阳县| 淮南市| 通河县| 交城县| 和林格尔县| 历史| 水富县| 灵宝市| 周宁县| 金坛市| 台南县| 新宁县| 榆树市| 张家口市| 囊谦县| 汾西县| 焉耆| 平邑县| 墨竹工卡县| 厦门市| 安顺市| 彰武县| 宣恩县| 凤庆县| 旬邑县| 布拖县| 谢通门县| 延边| 航空| 沿河| 白玉县| 云南省| 惠东县| 嘉兴市| 海原县| 米易县|