久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

python二分查找算法怎么應(yīng)用

共計(jì) 803 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。

二分查找算法是一種高效的查找算法,可以用于在有序數(shù)組中查找特定元素。其基本思想是將查找區(qū)間不斷二分,然后根據(jù)中間元素與目標(biāo)元素的大小關(guān)系,縮小查找區(qū)間,直到找到目標(biāo)元素或者確定目標(biāo)元素不存在。
以下是一個(gè)簡(jiǎn)單的示例代碼,演示了二分查找算法的應(yīng)用:

def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
# 示例用法
arr = [1, 3, 5, 7, 9, 11, 13]
target = 5
result = binary_search(arr, target)
if result != -1:
print(" 目標(biāo)元素在數(shù)組中的索引為 ", result)
else:
print(" 目標(biāo)元素不在數(shù)組中 ")

上述示例中,binary_search函數(shù)接受一個(gè)有序數(shù)組 arr 和一個(gè)目標(biāo)元素 target 作為參數(shù),返回目標(biāo)元素在數(shù)組中的索引。如果目標(biāo)元素不存在于數(shù)組中,則返回 -1。
在示例中,算法首先定義了查找區(qū)間的左右邊界 leftright,初始時(shí)分別為數(shù)組的第一個(gè)和最后一個(gè)元素的索引。然后進(jìn)入一個(gè)循環(huán),每次循環(huán)將查找區(qū)間二分為兩個(gè)子區(qū)間,然后根據(jù)中間元素與目標(biāo)元素的大小關(guān)系,更新左右邊界。如果中間元素等于目標(biāo)元素,則找到目標(biāo)元素,返回其索引。如果中間元素小于目標(biāo)元素,則目標(biāo)元素應(yīng)該在右子區(qū)間中,更新左邊界為中間元素的下一個(gè)位置。如果中間元素大于目標(biāo)元素,則目標(biāo)元素應(yīng)該在左子區(qū)間中,更新右邊界為中間元素的上一個(gè)位置。循環(huán)結(jié)束條件是左邊界大于右邊界。
通過(guò)二分查找算法,可以快速地在有序數(shù)組中查找目標(biāo)元素,時(shí)間復(fù)雜度為 O(log n)。

丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-12-21發(fā)表,共計(jì)803字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 昆山市| 遵义市| 泰来县| 泰兴市| 乌什县| 津市市| 同仁县| 犍为县| 宜君县| 桦南县| 利辛县| 繁峙县| 龙江县| 扶绥县| 桐乡市| 廊坊市| 衡阳县| 长子县| 临桂县| 兰坪| 宁德市| 彝良县| 九台市| 上蔡县| 察隅县| 安平县| 当涂县| 太康县| 万山特区| 历史| 淳安县| 泰来县| 巴林右旗| 乌拉特后旗| 开远市| 津市市| 奉新县| 游戏| 自贡市| 莱州市| 静海县|