⑴ 二分法查找的适用条件
说”二分查找法只适用于顺序存储的有序表“是正确的,说”指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)“是为了程序的确定性。
实际上只要有序就可以。按递减排序也可以用二分法。只是必须把算法规则改变一下。
递增的算法:拿要查找数值与中间序号的数值比较若相等,查找成功;要查找数值比中间序号的数值大,在右边查找,低端序号改为原中间序号加1;要查找数值比中间序号的数值小,在左边查找,高端序号改为原中间序号减1;如此反复。
递减的算法:拿要查找数值与中间序号的数值比较若相等,查找成功;要查找数值比中间序号的数值大,在左边查找,高端序号改为原中间序号减1;要查找数值比中间序号的数值小,在右边查找,低端序号改为原中间序号加1;如此反复。
⑵ 浜屽垎娉曟彃鍏ユ帓搴忕殑澶嶆潅搴﹀垎鏋
浜屽垎鎻掑叆鎺掑簭鏄绋冲畾镄勪笌浜屽垎镆ユ垒镄勫嶆潅搴︾浉钖岋绂
链濂界殑𨱍呭喌鏄褰撴彃鍏ョ殑浣岖疆鍒氩ソ鏄浜屽垎浣岖疆
镓鐢ㄦ椂闂翠负O(n);
链鍧忕殑𨱍呭喌鏄褰撴彃鍏ョ殑浣岖疆涓嶅湪浜屽垎浣岖疆
镓闇姣旇缉娆℃暟涓
n
S<=鈭忧銆宭og₂n銆-2^n銆宭og₂n銆+1
k=
1
骞冲潎镞堕棿O(n^2)