二分查找
Posted guoyu1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找相关的知识,希望对你有一定的参考价值。
主要针对的是“有序数组”中查找某个特定元素。
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
以上是关于二分查找的主要内容,如果未能解决你的问题,请参考以下文章