二分查找算法
只能对有序排列数据进行高效查找。
方法
定义下标:头l,尾r,中位数mid。
中位数对应元素与参数对比大小,若参数小于mid,则在左侧,将mid-1赋值给r,重定位r下标。
依次执行最终找到数据。
代码实现二分查找
namespace AlgorithmTest13_二分查找 |
时间复杂度分析
顺序查找法:最坏的时间复杂度。也就是对于未命中查找的情况,需要遍历所有的元素。
二分查找法:最坏的时间复杂度。也就是对于未命中查找的情况。每次比较都将数据规模缩小一半。
最坏情况(未命中查找)
对于15个元素使用顺序查找最多进行了15次比较
对于15个元素使用二分查找最多进行了4次比较
log2^15 = 4
对于n个元素使用二分查找最多进行了log2 n次比较
因此顺序查找复杂度:O(n),二分查找复杂度:O(log n)
O(1) < O(log n) < O(n)