0
l = -1; u = n;
while l+1 != u
m = l + (u-l)/2;
if x[m] < t
l = m;
else
u = m;
p = u;
if p >= n || x[p] != t
p = -1;
我們假設在上面的代碼中x [-1] < t和x [n]> = t且n> = 0。 上面的代碼是一個修改的二進制搜索,它可以返回第一個出現在整數數組x [0..n-1]中的整數t,而不是返回一個隨機值。停止二進制搜索的證明
我的問題是這樣的:
爲什麼上面的代碼總是暫停?任何人都可以解釋它或證明它?
謝謝,