⑴ 二分法查找的適用條件
說」二分查找法只適用於順序存儲的有序表「是正確的,說」指線性表中的元素按值非遞減排列(即從小到大,但允許相鄰元素值相等)「是為了程序的確定性。
實際上只要有序就可以。按遞減排序也可以用二分法。只是必須把演算法規則改變一下。
遞增的演算法:拿要查找數值與中間序號的數值比較若相等,查找成功;要查找數值比中間序號的數值大,在右邊查找,低端序號改為原中間序號加1;要查找數值比中間序號的數值小,在左邊查找,高端序號改為原中間序號減1;如此反復。
遞減的演算法:拿要查找數值與中間序號的數值比較若相等,查找成功;要查找數值比中間序號的數值大,在左邊查找,高端序號改為原中間序號減1;要查找數值比中間序號的數值小,在右邊查找,低端序號改為原中間序號加1;如此反復。
⑵ 浜屽垎娉曟彃鍏ユ帓搴忕殑澶嶆潅搴﹀垎鏋
浜屽垎鎻掑叆鎺掑簭鏄紼沖畾鐨勪笌浜屽垎鏌ユ壘鐨勫嶆潅搴︾浉鍚岋紱
鏈濂界殑鎯呭喌鏄褰撴彃鍏ョ殑浣嶇疆鍒氬ソ鏄浜屽垎浣嶇疆
鎵鐢ㄦ椂闂翠負O(n);
鏈鍧忕殑鎯呭喌鏄褰撴彃鍏ョ殑浣嶇疆涓嶅湪浜屽垎浣嶇疆
鎵闇姣旇緝嬈℃暟涓
n
S<=鈭憂銆宭og₂n銆-2^n銆宭og₂n銆+1
k=
1
騫沖潎鏃墮棿O(n^2)