二分查找中的循環不變式

如下代碼來自python標準庫,查找有序數組中第一個大於或等於x的元素位置,填加了一些註釋。python a[lo:hi](左閉右開)是待查找的區間,循環不變式爲:lo左邊的元素所有嚴格小於x,hi及hi右邊的元素所有大於等於x。關鍵不在於區間裏的元素具備什麼性質,而是區間外面的元素具備什麼性質。當循環結束時,lo==hi,根據循環不變式,可知hi爲第一個大於等於x的元素。數組 bisect_le
相關文章
相關標籤/搜索