上次用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頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...