python " />

扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

python浜屽垎鏌ユ壘绠楁硶鎬庝箞搴旂敤

扬州沐宇科技
2023-10-12 15:57:52
python

浜屽垎鏌ユ壘绠楁硶鏄竴绉嶉珮鏁堢殑鏌ユ壘绠楁硶锛屽彲浠ョ敤浜庡湪鏈夊簭鏁扮粍涓煡鎵剧壒瀹氬厓绱犮€傚叾鍩烘湰鎬濇兂鏄皢鏌ユ壘鍖洪棿涓嶆柇浜屽垎锛岀劧鍚庢牴鎹腑闂村厓绱犱笌鐩爣鍏冪礌鐨勫ぇ灏忓叧绯伙紝缂╁皬鏌ユ壘鍖洪棿锛岀洿鍒版壘鍒扮洰鏍囧厓绱犳垨鑰呯‘瀹氱洰鏍囧厓绱犱笉瀛樺湪銆?/p>

浠ヤ笅鏄竴涓畝鍗曠殑绀轰緥浠g爜锛屾紨绀轰簡浜屽垎鏌ユ壘绠楁硶鐨勫簲鐢細

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("鐩爣鍏冪礌鍦ㄦ暟缁勪腑鐨勭储寮曚负", result)
else:
print("鐩爣鍏冪礌涓嶅湪鏁扮粍涓?quot;)

涓婅堪绀轰緥涓紝binary_search鍑芥暟鎺ュ彈涓€涓湁搴忔暟缁?code>arr鍜屼竴涓洰鏍囧厓绱?code>target浣滀负鍙傛暟锛岃繑鍥炵洰鏍囧厓绱犲湪鏁扮粍涓殑绱㈠紩銆傚鏋滅洰鏍囧厓绱犱笉瀛樺湪浜庢暟缁勪腑锛屽垯杩斿洖-1銆?/p>

鍦ㄧず渚嬩腑锛岀畻娉曢鍏堝畾涔変簡鏌ユ壘鍖洪棿鐨勫乏鍙宠竟鐣?code>left鍜?code>right锛屽垵濮嬫椂鍒嗗埆涓烘暟缁勭殑绗竴涓拰鏈€鍚庝竴涓厓绱犵殑绱㈠紩銆傜劧鍚庤繘鍏ヤ竴涓惊鐜紝姣忔寰幆灏嗘煡鎵惧尯闂翠簩鍒嗕负涓や釜瀛愬尯闂达紝鐒跺悗鏍规嵁涓棿鍏冪礌涓庣洰鏍囧厓绱犵殑澶у皬鍏崇郴锛屾洿鏂板乏鍙宠竟鐣屻€傚鏋滀腑闂村厓绱犵瓑浜庣洰鏍囧厓绱狅紝鍒欐壘鍒扮洰鏍囧厓绱狅紝杩斿洖鍏剁储寮曘€傚鏋滀腑闂村厓绱犲皬浜庣洰鏍囧厓绱狅紝鍒欑洰鏍囧厓绱犲簲璇ュ湪鍙冲瓙鍖洪棿涓紝鏇存柊宸﹁竟鐣屼负涓棿鍏冪礌鐨勪笅涓€涓綅缃€傚鏋滀腑闂村厓绱犲ぇ浜庣洰鏍囧厓绱狅紝鍒欑洰鏍囧厓绱犲簲璇ュ湪宸﹀瓙鍖洪棿涓紝鏇存柊鍙宠竟鐣屼负涓棿鍏冪礌鐨勪笂涓€涓綅缃€傚惊鐜粨鏉熸潯浠舵槸宸﹁竟鐣屽ぇ浜庡彸杈圭晫銆?/p>

閫氳繃浜屽垎鏌ユ壘绠楁硶锛屽彲浠ュ揩閫熷湴鍦ㄦ湁搴忔暟缁勪腑鏌ユ壘鐩爣鍏冪礌锛屾椂闂村鏉傚害涓篛(log n)銆?/p>

扫码添加客服微信