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

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

 更新時間:2020年09月18日 15:46:47   作者:流柯  
這篇文章主要介紹了python如何實(shí)現(xiàn)二分查找算法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下。

介紹

二分查找也稱折半查找(Binary Search),它是一種效率較高的查找方法。但是,折半查找要求線性表必須采用順序存儲結(jié)構(gòu),而且表中元素按關(guān)鍵字有序排列。

前提

必須待查找的序列有序

時間復(fù)雜度

O(log2n)

原理

1)確定該期間的中間位置K

2)將查找的值t與array[k]比較,若相等,查找成功返回此位置;否則確定新的查找區(qū)域,繼續(xù)二分查找。

3)區(qū)域確定過程:

若array[k]>t,由于數(shù)組有序,所以array[k,k+1,……,high]>t;故新的區(qū)間為array[low, ..., K-1];
反之,若array[k]<t對應(yīng)查找區(qū)間為array[k+1, ..., high]

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date  : 2020-07-10
# @Author : 流柯
# @desc : 二分查找算法,python版

def serach(array, t):
  array.sort() #排序,保證列表是有序的
  low = 0
  height = len(array) - 1
  while low <= height:
    k = (low + height) // 2
    if array[k] < t:
      low = k + 1
    elif array[k] > t:
      height = k - 1
    else:
      return k #找到后返回位置
  return -1 #找不到返回-1
array = [1, 3, 5, 7, 9, 6, 8, 0]
print(serach(array, 5))

以上就是python實(shí)現(xiàn)二分查找算法的詳細(xì)內(nèi)容,更多關(guān)于python 二分查找算法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python GUI之tkinter窗口視窗教程大集合(推薦)

    Python GUI之tkinter窗口視窗教程大集合(推薦)

    這篇文章主要介紹了Python GUI之tkinter窗口視窗教程大集合,看這一篇教程足了,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 簡述python四種分詞工具,盤點(diǎn)哪個更好用?

    簡述python四種分詞工具,盤點(diǎn)哪個更好用?

    這篇文章主要介紹了python四種分詞工具的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • python多進(jìn)程讀圖提取特征存npy

    python多進(jìn)程讀圖提取特征存npy

    這篇文章主要為大家詳細(xì)介紹了python多進(jìn)程讀圖提取特征存npy,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • python如何讀取.mtx文件

    python如何讀取.mtx文件

    這篇文章主要介紹了python讀取.mtx文件的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 最新解決'nvidia-smi' 不是內(nèi)部或外部命令也不是可運(yùn)行的程序

    最新解決'nvidia-smi' 不是內(nèi)部或外部命令也不是可運(yùn)行的程序

    使用cmd查看電腦顯卡的信息,調(diào)用nvidia-smi查看顯卡使用情況報錯,提示'nvidia-smi' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序,本文給大家分享完美解決方案,感興趣的朋友跟隨小編一起看看吧
    2023-01-01
  • python中time.ctime()實(shí)例用法

    python中time.ctime()實(shí)例用法

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python中time.ctime()實(shí)例用法內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)參考下。
    2021-02-02
  • Python 異常的捕獲、異常的傳遞與主動拋出異常操作示例

    Python 異常的捕獲、異常的傳遞與主動拋出異常操作示例

    這篇文章主要介紹了Python 異常的捕獲、異常的傳遞與主動拋出異常操作,結(jié)合實(shí)例形式詳細(xì)分析了Python針對異常捕獲、傳遞、處理等常見操作技巧,需要的朋友可以參考下
    2019-09-09
  • 利用Python半自動化生成Nessus報告的方法

    利用Python半自動化生成Nessus報告的方法

    這篇文章主要介紹了利用Python半自動化生成Nessus報告的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • pytest接口自動化測試框架搭建的全過程

    pytest接口自動化測試框架搭建的全過程

    pytest是Python的一種單元測試框架,可用來組織用例執(zhí)行,用例斷言,下面這篇文章主要給大家介紹了關(guān)于pytest接口自動化測試框架搭建的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Python之Web框架Django項目搭建全過程

    Python之Web框架Django項目搭建全過程

    這篇文章主要介紹了Python之Web框架Django項目搭建全過程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論

郴州市| 桐庐县| 金平| 吴江市| 绥阳县| 鸡泽县| 高密市| 四川省| 白沙| 定州市| 依兰县| 扬州市| 汶上县| 中牟县| 安龙县| 北碚区| 宁津县| 三亚市| 林州市| 江都市| 广平县| 永靖县| 洪江市| 桂平市| 广德县| 武强县| 思南县| 南康市| 嘉义市| 信宜市| 浑源县| 峨眉山市| 芦山县| 姜堰市| 黄平县| 黑龙江省| 敦煌市| 两当县| 乌兰浩特市| 永川市| 翁牛特旗|