python浜屽垎娉曟煡鎵炬硶鎬庝箞浣跨敤
浜屽垎娉曟槸涓€绉嶇敤浜庢煡鎵炬湁搴忔暟缁勪腑鐗瑰畾鍏冪礌鐨勭畻娉曘€傚畠鐨勫熀鏈€濇兂鏄紝灏嗘湁搴忔暟缁勫垎鎴愪袱涓儴鍒嗭紝鐒跺悗鍒ゆ柇鐩爣鍏冪礌鍦ㄥ摢涓儴鍒嗭紝鍐嶅湪鐩稿簲鐨勯儴鍒嗕腑缁х画浜屽垎鏌ユ壘锛岀洿鍒版壘鍒扮洰鏍囧厓绱犳垨鑰呯‘瀹氱洰鏍囧厓绱犱笉瀛樺湪銆?/p>
涓嬮潰鏄竴涓娇鐢ㄤ簩鍒嗘硶鏌ユ壘鐗瑰畾鍏冪礌鐨勭ず渚嬩唬鐮侊細
def binary_search(arr, target):
left = 0
right = 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, 2, 3, 4, 5, 6, 7, 8, 9]
target = 6
result = binary_search(arr, target)
if result != -1:
print("鐩爣鍏冪礌鍦ㄦ暟缁勪腑鐨勭储寮曚负", result)
else:
print("鐩爣鍏冪礌涓嶅瓨鍦ㄤ簬鏁扮粍涓?quot;)
鍦ㄤ笂闈㈢殑浠g爜涓紝binary_search
鍑芥暟鎺ュ彈涓€涓湁搴忔暟缁?arr
鍜岀洰鏍囧厓绱?target
浣滀负鍙傛暟銆傜劧鍚庝娇鐢?left
鍜?right
涓や釜鎸囬拡鍒嗗埆鎸囧悜鏁扮粍鐨勫乏鍙宠竟鐣屻€傚湪姣忔寰幆涓紝璁$畻鍑轰腑闂村厓绱犵殑绱㈠紩 mid
锛屽苟灏嗗叾涓庣洰鏍囧厓绱犺繘琛屾瘮杈冦€傚鏋滀腑闂村厓绱犵瓑浜庣洰鏍囧厓绱狅紝灏辫繑鍥炰腑闂村厓绱犵殑绱㈠紩锛涘鏋滀腑闂村厓绱犲皬浜庣洰鏍囧厓绱狅紝璇存槑鐩爣鍏冪礌鍙兘鍦ㄥ彸鍗婇儴鍒嗭紝灏?left
鎸囬拡绉诲埌 mid
鐨勫彸杈逛竴浣嶏紱濡傛灉涓棿鍏冪礌澶т簬鐩爣鍏冪礌锛岃鏄庣洰鏍囧厓绱犲彲鑳藉湪宸﹀崐閮ㄥ垎锛屽皢 right
鎸囬拡绉诲埌 mid
鐨勫乏杈逛竴浣嶃€傞噸澶嶄互涓婃楠ょ洿鍒版壘鍒扮洰鏍囧厓绱犳垨鑰呯‘瀹氱洰鏍囧厓绱犱笉瀛樺湪銆?/p>
閫氳繃浠ヤ笂浠g爜锛屽彲浠ュ湪鏈夊簭鏁扮粍涓娇鐢ㄤ簩鍒嗘硶鏌ユ壘鐗瑰畾鍏冪礌銆?/p>
相关问答