花了半天把二分查找的几种都写了一遍.验证了一下.二分查找的正确编写的关键就是,确保循环的初始.循环不变式能够保证一致. 可以先从循环里面确定循环不变式,然后再推导初始条件,最后根据循环不变式的内容推导出结果. 1. 普通的二分查找 第一版本: //first version int find(int arr[], int n, int target) { , r = n - ; while (l <= r) { ; if (arr[m] == target) return m; else if…