python數組尋找演算法bisect二分尋找插入

來源:互聯網
上載者:User
1 執行個體

這個模組只有幾個函數,

一旦決定使用二分搜尋時,立馬要想到使用這個模組 

import bisect    L = [1,3,3,6,8,12,15]  x = 3    x_insert_point = bisect.bisect_left(L,x)  #在L中尋找x,x存在時返回x左側的位置,x不存在返回應該插入的位置..這是3存在於列表中,返回左側位置1  print x_insert_point    x_insert_point = bisect.bisect_right(L,x)  #在L中尋找x,x存在時返回x右側的位置,x不存在返回應該插入的位置..這是3存在於列表中,返回右側位置3    print x_insert_point    x_insort_left = bisect.insort_left(L,x)  #將x插入到列表L中,x存在時插入在左側  print L    x_insort_rigth = bisect.insort_right(L,x) #將x插入到列表L中,x存在時插入在右側        print L

結果:


1
3
[1, 3, 3, 3, 6, 8, 12, 15]
[1, 3, 3, 3, 3, 6, 8, 12, 15]

實際使用中

2  bisect模組Bisect模組提供的函數有:(1)尋找bisect.bisect_left(a,x, lo=0, hi=len(a)) :尋找在有序列表a中插入x的index。lo和hi用於指定列表的區間,預設是使用整個列表。bisect.bisect_right(a,x, lo=0, hi=len(a))bisect.bisect(a, x,lo=0, hi=len(a))這2個和bisect_left類似,但如果x已經存在,在其右邊插入。(2)插入bisect.insort_left(a,x, lo=0, hi=len(a))在有序列表a中插入x。如果x已經存在,在其左邊插入。傳回值為index。 和a.insert(bisect.bisect_left(a,x, lo, hi), x) 的效果相同。bisect.insort_right(a,x, lo=0, hi=len(a))bisect.insort(a, x,lo=0, hi=len(a))和insort_left類似,但如果x已經存在,在其右邊插入。 可以函數可以分2類,bisect*,用於尋找index。Insort*用於實際插入。預設重複時從右邊插入。實際常用的估計是insort。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.