码迷,mamicode.com
首页 > 其他好文 > 详细

二分查找

时间:2019-12-18 10:43:54      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:ref   array   对比   二分   查找   二分查找   sea   递归   遍历   

主要针对的是“有序数组”中查找某个特定元素。

 

1、二分查找的思想:主要针对的是有序数组,要充分利用数组有序的特性,要是遍历查找,时间复杂度是O(n),就浪费了数组的有序性。

             其思想就是,每次查找对比的元素都是数组的中间元素,通过比较中间元素和目标元素的大小,进一步的缩小范围,每次比较的范围都缩小为原来的一半。可以用递归的思想来实现。

2、时间空间复杂度:时间复杂度 O(logn),空间复杂度O(1)

3、代码:

int binarysearch(int array[], int low, int high, int target) {
    if (low > high) return -1;
    int mid = low + (high - low) / 2;
    if (array[mid] > target)
        return binarysearch(array, low, mid - 1, target);
    if (array[mid] < target)
        return binarysearch(array, mid + 1, high, target);
    return mid;
}

 

参考博客:https://www.cnblogs.com/morethink/p/8379475.html

二分查找

标签:ref   array   对比   二分   查找   二分查找   sea   递归   遍历   

原文地址:https://www.cnblogs.com/guoyu1/p/12058391.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!