首页 > 试题广场 > 在顺序表(2,5,7,10,14,15,18,23,35,4
[单选题]
在顺序表(2,5,7,10,14,15,18,23,35,41,52)中,用二分法查找12,所需的关键码比较的次数为()
  • 2
  • 3
  • 4
  • 5
答案:C
查找比较步骤:
① {2, 5, 7, 10, 14, 15, 18, 23, 35, 41, 52}        start = 0, end = 10, mid = 5, 12 VS 15
② {2, 5, 7, 10, 14}                                            start = 0, end = 4,  mid = 2, 12 VS 7
③ {10, 14}                                                        start = 3, end = 4,  mid = 3, 12 VS 10
④ {14}                                                              start = 4, end = 4,  mid = 4, 12 VS 14      
结果:没找到,返回 -1或者 false 等标识。

个人测试:

二分查找算法:
function binarySearch(arr, item, start, end) {
            if (start > end) {
                return -1;
            }
            let mid = Math.floor((start + end) / 2);
            console.log(arr[mid]);                // 用于打印被比较的数值 
            if (item === arr[mid]) {
                return mid;
            } else if (item < arr[mid]) {
                return binarySearch(arr, item, start, mid - 1);
            } else {
                return binarySearch(arr, item, mid + 1, end);
            }
        }



发表于 2019-10-19 15:43:22 回复(0)
在顺序表(2,5,7,10,14,15,18,23,35,41,52)中,用二分法查找12,所需的关键码比较的次数为()  ???
是找14吧?
发表于 2019-09-10 17:23:19 回复(1)