本帖最后由 张洪慊 于 2013-3-6 15:17 编辑
我以前的总结,关键看两个查找过程
/*
折半(二分)查找:
算法思想:
要求序列必须有序(升序/降序),因为只有这样才能确定数据的范围,通过不断的折半来缩小查找数据的范围
设查找数据为key
①通过两个变量min和max来指定数据的范围,要求min<=max (min=max表示只有一个数据时)
②首先与mid=(min+max)/2比较,如果key=mid查找成功,直接返回mid,如果key<mid,则min=mid-1,缩短查找范围,此时在让key与mid=(max+min)/2比较,若key>mid,
则max=mid+1,之后再与新的mid比较,依次类推找到则返回,未找到则min>max.
*/
1.找到(图形代表查找过程mid,min,max值的变化)
以上0,1...代表数组下标
2.未找到:
|