题目

解题思路
我一开始是想的写一个函数递归那种,但是在传参数时就怎么给新调用的函数传参的时候懵住了,不知道该怎么传递才能改变L能呢,我也没办法改变L让它成为一半数组呀,就这样卡住了,最后参看了别人,人家写了一个while循环,在while循环里改变min和max,然后在L的数组里操作,来解决二分查找。
代码
Position BinarySearch( List L, ElementType X ){
Position min = 0,max = L->Last,mid;
while(min<=max){
mid = (min+max)/2;
if(L->Data[mid]==X) return mid;
else if(L->Data[mid]<X) min = mid+1;
else max = mid-1;
}
return NotFound;
}
本文详细介绍了如何解决复杂度为3的二分查找问题。作者最初尝试使用递归方法,但在参数传递中遇到困难。最终,通过采用while循环的方式,实现了在数组中进行二分查找的功能。代码示例展示了在链表中执行二分查找的过程,当找到目标元素返回其位置,否则返回NotFound。

被折叠的 条评论
为什么被折叠?



