浙大习题1.8 二分查找 (20分)
习题1.8 二分查找 (20分) Position BinarySearch ( List L , ElementType X ) { int left = 1 , right = L - > Last ; int ans ; while ( left <= right ) { int mid = ( left + right ) / 2 ; if ( L - > Data [ mid ] == X ) { ans = mid ; return ans ; } else if ( L - > Data [ mid ] < X ) { left = mid + 1 ; } else if ( L - > Data [ mid ] > X ) { right = mid - 1 ; } } return NotFound ; } 很简单的二分查找,因为是顺序存储的数组,直接初始设l为0,r为L->Last即数组的最后一个,比较mid与需要查找值的大小,如果mid大于需要查找值,r=mid-1,否则l=mid+1。直到比较到相同的值为止。如果找不到返回NotFound。 来源: CSDN 作者: 快乐风男hasaki 链接: https://blog.csdn.net/qq_45472201/article/details/104543079