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

Python二分法搜索算法實例分析

 更新時間:2015年05月11日 16:06:55   作者:像風一樣的自由  
這篇文章主要介紹了Python二分法搜索算法,實例分析了Python實現(xiàn)二分法的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例分析了Python二分法搜索算法。分享給大家供大家參考。具體分析如下:

今天看書時,書上提到二分法雖然道理簡單,大家一聽就明白但是真正能一次性寫出別出錯的實現(xiàn)還是比較難的,即使給了你充足的時間,比如1小時。如果你不是特別認真的話,可能還是會出一些這樣那樣的錯誤,所以就嘗試了自己去實現(xiàn)一下,看能否一次通過,結果自然不言而喻,雖然用的時間不長,但是我失敗了,呵呵。

個人覺得失敗的最主要原因是自己沒有認真的先想好這個思路和可能出現(xiàn)的分支情況,而是直接憑主觀臆想就去寫代碼了,完全正中書上所說的行為,所以也如書上所說,出錯了。后經(jīng)調(diào)試應該是得到了基本的正確算法,內(nèi)容如下:

#!/usr/bin/env python
#encoding: utf-8
def half_search(search_arr, search_str):
  lb = 0
  ub = len(search_arr) - 1
  for i in range(ub/2 + 1):
    if lb > ub:
      return -1
    mid = (ub + lb)/2
    if search_arr[mid] == search_str:
      return mid
    elif search_arr[mid] > search_str:
      ub = mid - 1
    else:
      lb = mid + 1
if __name__=='__main__':
  arr = [10,20,30,40,50,60,70]
  print half_search(arr, 1)
  print half_search(arr, 11)
  print half_search(arr, 22)
  print half_search(arr, 33)
  print half_search(arr, 40)
  print half_search(arr, 55)
  print half_search(arr, 66)
  print half_search(arr, 70)
  print half_search(arr, 8)

結果:

-1 
-1 
-1 
-1 
3 
-1 
-1 
6 
-1

正整數(shù)代表在數(shù)組中的下標,3那就是第4個位置;-1代表不存在

總結:

實現(xiàn)簡單的算法之前,如果已經(jīng)有了一套最簡易的實現(xiàn)【比如直接打印100條相似的內(nèi)容】,不妨要想想是否還有更精巧的實現(xiàn)【可否用循環(huán)+參數(shù)化替代】;實現(xiàn)稍微復雜點的算法時,不妨先在紙上畫出各種可能的驗證情況,避免實現(xiàn)是缺胳膊短腿的;還有一點就是算法什么的還是要多練,不然稍微復雜的過一陣可能就會忘記細節(jié)了。我想這就叫術業(yè)有專攻吧!

希望本文所述對大家的Python程序設計有所幫助。

相關文章

  • python可視化數(shù)據(jù)分析pyecharts初步嘗試

    python可視化數(shù)據(jù)分析pyecharts初步嘗試

    這篇文章主要為大家介紹了python可視化數(shù)據(jù)分析pyecharts初步嘗試,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • Python 冒泡,選擇,插入排序使用實例

    Python 冒泡,選擇,插入排序使用實例

    這里簡單介紹了下Python中冒泡,選擇,插入排序的使用方法,推薦給需要的小伙伴們參考下。
    2015-02-02
  • 詳解python讀取和輸出到txt

    詳解python讀取和輸出到txt

    這篇文章主要介紹了python讀取和輸出到txt,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 上手簡單,功能強大的Python爬蟲框架——feapder

    上手簡單,功能強大的Python爬蟲框架——feapder

    這篇文章主要介紹了上手簡單,功能強大的Python爬蟲框架——feapder的使用教程,幫助大家更好的利用python進行爬蟲,感興趣的朋友可以了解下
    2021-04-04
  • python?中raise用法

    python?中raise用法

    這篇文章主要介紹了python?中raise用法,Python?允許我們在程序中手動設置異常,就是使用raise?語句來實現(xiàn),下面我們就來看看raise的具體用法,文章內(nèi)容介紹詳細,具有一定的參考價值,需要的小伙伴可以參考一下
    2021-12-12
  • Python實現(xiàn)冒泡,插入,選擇排序簡單實例

    Python實現(xiàn)冒泡,插入,選擇排序簡單實例

    這篇文章主要介紹了Python實現(xiàn)冒泡,插入,選擇排序簡單實例,很適合Python初學者學習參考之用,需要的朋友可以參考下
    2014-08-08
  • python中eval的用法及說明

    python中eval的用法及說明

    這篇文章主要介紹了python中eval的用法及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • python 通過手機號識別出對應的微信性別(實例代碼)

    python 通過手機號識別出對應的微信性別(實例代碼)

    這篇文章主要介紹了python 通過手機號識別出對應的微信性別,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • python linecache讀取行更新的實現(xiàn)

    python linecache讀取行更新的實現(xiàn)

    本文主要介紹了python linecache讀取行更新的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • nginx+uwsgi+django環(huán)境搭建的方法步驟

    nginx+uwsgi+django環(huán)境搭建的方法步驟

    這篇文章主要介紹了nginx+uwsgi+django環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11

最新評論

石渠县| 高尔夫| 美姑县| 泸水县| 黄浦区| 益阳市| 杭锦旗| 贵港市| 乐昌市| 阿城市| 弥渡县| 桃江县| 龙江县| 沈丘县| 台安县| 冷水江市| 嘉黎县| 沧源| 哈密市| 阳江市| 清苑县| 仁化县| 长阳| 黄石市| 冀州市| 卫辉市| 正镶白旗| 手游| 平阴县| 东乌珠穆沁旗| 行唐县| 井冈山市| 曲靖市| 东山县| 元阳县| 南昌县| 宕昌县| 佛学| 黑龙江省| 宁乡县| 和平区|