标签: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