国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python二分查找詳解

Python二分查找詳解

2020-07-31 11:25腳本之家 Python

這篇文章主要給大家匯總介紹了Python二分查找的幾種實(shí)現(xiàn)的方法,有需要的小伙伴可以參考下。

先來看個(gè)實(shí)例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env python
import sys 
 
def search2(a,m):
  low = 0
  high = len(a) - 1
  while(low <= high):
    mid = (low + high)/2
    midval = a[mid]
   
    if midval < m:
      low = mid + 1
    elif midval > m:
      high = mid - 1
    else:
      print mid 
      return mid 
  print -1
  return -1
 
if __name__ == "__main__":
  a = [int(i) for i in list(sys.argv[1])]
  m = int(sys.argv[2])
  search2(a,m)

運(yùn)行:

?
1
administrator@ubuntu:~/Python$ python test_search2.py 123456789 4

3

注:

1.'__':由于python的類成員都是公有、公開的被存取public,缺少像正統(tǒng)面向?qū)ο笳Z言的私有private屬性。
于是就用__來將就一下,模擬私有屬性。這些__屬性往往是內(nèi)部使用,通常情況下不用改寫。也不用讀取。
加上2個(gè)下劃線的目的,一是不和普通公有屬性重名沖突,二是不讓對象的使用者(非開發(fā)者)隨意使用。
2.__name__ == "__main__"表示程序腳本是直接被執(zhí)行的.
如果不等于表示腳本是被其他程序用import引入的.則其__name__屬性被設(shè)為模塊名

Python采用二分查找找出數(shù)字的下標(biāo)

要考慮有重復(fù)數(shù)字的情況

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Solution(object):
  def searchRange(self, nums, target):
    """
    :type nums: List[int]
    :type target: int
    :rtype: List[int]
    """
    def binary_search(start,end,value):
      while end>=start:
        mid = (start+end)//2
        print(mid)
        if nums[mid]>target:
          end = mid-1
        elif nums[mid]<target:
          start = mid+1
        else:
          if value==-1:
            if mid-1>=start and nums[mid+value] == target:
              end = mid+value
            else:
              return mid
          else:
            if mid+1<=end and nums[mid+value] == target:
              start = mid+value
            else:
              return mid
 
      return -1
    a=binary_search(0,len(nums)-1,-1)
    b=binary_search(0,len(nums)-1,1)
    return [a,b]
a = Solution()
l = [2,2]
print(a.searchRange(l,2))

二分算法的定義不在多說了,百度一下就知道(支持國產(chǎn)大笑)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import sys
source = [1,2,3,4,5,6,7,8,9,10] #must be in order
des = int(sys.argv[1])
low = 0
high = len(source) - 1
targetIndex = -1
print "des=",des
while low <= high:
  middle = (low + high)/2
  if des == source[middle]:
    targetIndex = middle
    break
  elif des < source[middle]:
    high = middle -1
    print "middle element[index=",middle,",value=",source[middle],"] is bigger than des, continue search from[",low,"to",high,"]"
  else:
    low = middle + 1
    print "middle element[index=",middle,",value=",source[middle],"] is smaller than des, continue search from[",low,"to",high,"]"
print "search complete, target element's index in source list is ",targetIndex

最后在分享一個(gè)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
'fileName--BinarySearch.py'
 
src = []
 
def BinarySearch(low, high, target, *src):
  '二分查找'
  while low <= high:
    mid = (low + high) // 2
    midVal = src[mid]
    if target < midVal:
      high = mid - 1
    elif target > midVal:
      low = mid + 1
    else:
      return mid
    BinarySearch(low, high, target, *src)
 
print('Please input 10 number:')
for number in range(10):
  src.append(int(input('Num %d:' % number)))
 
sortList = tuple(src)
 
key = int(input('Please input key:'))
location = BinarySearch(0, len(src) - 1, key, *sortList)
 
if location != None:
  print('Find target at %d' % (location + 1))
else:
  print('No target!')

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 香蕉久久久 | 在线观看欧美一区 | 自拍视频在线观看 | 亚洲成人一区在线 | 色爱欧美 | 久久综合九九 | 欧美精品在线一区 | 亚洲人免费视频 | 国产精品99久久久久久动医院 | 在线成年人电影 | 国产一级片 | 在线播放国产精品 | 中文一区| 亚洲二区在线观看 | 午夜免费视频 | 九热在线视频 | 日韩精品一区二区在线观看 | 日韩国产欧美一区 | 国产高清精品一区 | 黑森林av凹凸导航 | 在线视频亚洲 | 久久一区二区视频 | 国产毛片久久久 | 日韩福利 | 欧美日韩视频在线 | 中文字幕一二三区 | 龙珠z国语291集普通话 | 久久久久久久一区 | 国产欧美在线播放 | 欧美大片aaaa在线观看 | 久草福利在线视频 | av一二 | 黑人精品欧美一区二区蜜桃 | 婷婷精品视频 | 国产欧美日韩一区 | 国外成人在线视频网站 | 北条麻妃在线一区二区 | 激情视频网站 | 91精品视频在线播放 | 精品一二区 | 欧美一区二区 |