参考答案和解析
参考答案:分治算法时间是这样确定的:解决子问题所需的工作总量由子问题的个数、解决每个子问题的工作量、合并所有子问题所需的工作量所决定。折半查找最坏情况下,也只需要在原问题一半大小的子问题中查找,而且不需要合并子问题。
更多“二分检索算法为什么可以提高查找的效率 ”相关问题
  • 第1题:

    关于查找,以下说法正确的是()。

    A.顺序查找算法需要原始数据有序才能使用

    B.顺序查找算法比二分查找算法的效率高

    C.二分查找算法要求数据已经排好序

    D.顺序查找算法和二分查找算法都不要求数据已经排好序


    C

  • 第2题:

    4、在路由表查找的机制中可以直接使用Hash索引提高查找效率吗?为什么?


    特定路由、下一跳路由、默认路由

  • 第3题:

    二分查找算法,折半查找算法


    public static int binarySearch(int[] value, int key, int begin, int end) { if (begin<=end) { int mid = (begin+end)/2; if (value[mid]==key) return mid; if (key < value[mid]) return binarySearch(value, key, begin, mid-1); return binarySearch(value, key, mid+1, end); } return -1; }

  • 第4题:

    3、二分查找算法,折半查找算法


    public static int binarySearch(int[] value, int key, int begin, int end) { if (begin<=end) { int mid = (begin+end)/2; if (value[mid]==key) return mid; if (key < value[mid]) return binarySearch(value, key, begin, mid-1); return binarySearch(value, key, mid+1, end); } return -1; }

  • 第5题:

    插入排序中找插入位置的操作可以通过二分查找法来实现。设计一个用二分查找法来找插入位置的改进的插入排序算法。


    Void sort(datatype a[n]) /*n为元素个数数组下标从1开始到n结束*/ { for(i=2;i<=n;i++) {low=1;high=i一1; /*lowhigh分为当前元素上、下界*/ a[0]=a[i]; while(10w<=high) {mid=(10w+high)/2; switch {a[0]<=a[mid]:hiqh=mid一1;/*修改上界*/ a[0]>a[mid]:low=mid+1; /*修改下界*/ } for(j=i一1;j>=mid;j一一) a[j+1]=a[j]; a[mid]=a[i]; } } } 插入排序的基本思想是:每趟从无序区间中取出一个元素,再按键值大小括入到前面的有序区中。对于有序区,当然可以用二分查找来确定插入位置。