歡迎使用CSDN markdown編輯器

2021-07-02 07:15:35 字數 954 閱讀 4922

上次用python寫二分查詢,習慣性的就寫遞迴函式,結果被坑了,重新寫了乙份

def bin_searth(in_list, num):

if(not in_list):

return -1

length = len(in_list)

index = length/2

begin = 0

end = length - 1

while(true):

if(in_list[index] == num):

return index

else:

if(length == 1):

return -1

if(in_list[index] > num):

end = index - 1

elif(in_list[index] < num):

begin = index + 1

index = (begin + end)/2

length = end - begin + 1

然後看了下別人的實現,據說這段**出自《**之美》(beautiful code)

def

binarysearch

(a, target):

low = 0

high = len(a) - 1

while low <= high:

mid = (low + high) // 2

midval = a[mid]

if midval < target:

low = mid + 1

elif midval > target:

high = mid - 1

else:

return mid

return -1

果然比自己的簡潔很多,學習了

歡迎使用CSDN markdow

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

歡迎毛毛與妞妞使用CSDN markdown編輯器

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

歡迎使用CSDN markdow1n編輯器

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...