欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

介紹

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

前提

必須待查找的序列有序

時間復雜度

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對應查找區(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實現(xiàn)二分查找算法的詳細內(nèi)容,更多關于python 二分查找算法的資料請關注腳本之家其它相關文章!

相關文章

  • PyCharm 解決找不到新打開項目的窗口問題

    PyCharm 解決找不到新打開項目的窗口問題

    這篇文章主要介紹了PyCharm 解決找不到新打開項目的窗口問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Python標準異常和異常處理詳解

    Python標準異常和異常處理詳解

    這篇文章主要介紹了Python標準異常和異常處理詳解,本文講解了python標準異常、什么是異常、異常處理的多種方法和實例等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • 在Django admin中編輯ManyToManyField的實現(xiàn)方法

    在Django admin中編輯ManyToManyField的實現(xiàn)方法

    今天小編就為大家分享一篇在Django admin中編輯ManyToManyField的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python中的opencv和PIL(pillow)轉化操作

    python中的opencv和PIL(pillow)轉化操作

    這篇文章主要介紹了python中的opencv和PIL(pillow)轉化操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • TensorFlow索引與切片的實現(xiàn)方法

    TensorFlow索引與切片的實現(xiàn)方法

    這篇文章主要介紹了TensorFlow索引與切片的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • python?列表的查詢操作和切片

    python?列表的查詢操作和切片

    這篇文章主要介紹了python?列表的查詢操作和切片,列表是python內(nèi)置的數(shù)據(jù)結構,相當于數(shù)組,列表中所有數(shù)據(jù)都是按順序有序排列,列表屬于序列類型,接下來一起學習下面的文章內(nèi)容吧
    2022-01-01
  • Python實現(xiàn)文件操作幫助類的示例代碼

    Python實現(xiàn)文件操作幫助類的示例代碼

    在使用Python進行業(yè)務開發(fā)的時候,需要將一些數(shù)據(jù)保存到本地文件存儲,方便后面進行數(shù)據(jù)分析展示,本文就來用Python制作一個文件操作幫助類,需要的可以參考一下
    2023-03-03
  • 基于python3.7利用Motor來異步讀寫Mongodb提高效率(推薦)

    基于python3.7利用Motor來異步讀寫Mongodb提高效率(推薦)

    Motor是一個異步mongodb driver,支持異步讀寫mongodb。它通常用在基于Tornado的異步web服務器中。這篇文章主要介紹了基于python3.7利用Motor來異步讀寫Mongodb提高效率,需要的朋友可以參考下
    2020-04-04
  • Python數(shù)據(jù)持久化shelve模塊用法分析

    Python數(shù)據(jù)持久化shelve模塊用法分析

    這篇文章主要介紹了Python數(shù)據(jù)持久化shelve模塊用法,結合實例形式較為詳細的總結分析了shelve模塊的功能、原理及簡單使用方法,需要的朋友可以參考下
    2018-06-06
  • python實現(xiàn)pdf轉換成word/txt純文本文件

    python實現(xiàn)pdf轉換成word/txt純文本文件

    這篇文章主要為大家詳細介紹了python實現(xiàn)pdf轉換成word和txt純文本文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06

最新評論