Advertisement

Python 掌握下标运用技巧:二分查找法、冒泡排序、选择排序、插入排序、归并排序及快速排序(Python版本)

阅读量:

二分查找法(折半查找法)的递归实现


二分查找法(折半查找法):适用于预先排好序的列表中的查找问题
进一步强调,在排序的基础上应用二分查找法更为高效和准确;经过排序后才能有效使用这种查找方法。

  1. 此外,在待查找列表中如果存在重复值,则只会返回其中一个位置。
  2. 该算法的时间复杂度为O(\log_2 N), 其中N表示数据的大小。

为了便于理解代码中的下标运算,
前提如下:

  • 小括号()表示区间时不包括端点
  • 中括号[]则表示区间包括端点
    举例说明:
    区间表示为(2,6]即从下标2开始(不含)到下标6结束(含)

查看代码示例(其中列表长度设定为偶数且假定长度为10,在有序排列的情况下,请计算并返回目标值的索引位置)

复制代码
    def _binarySearch(key, a, lo, hi):
    if lo >= hi:
        return -1
    mid = (lo + hi) // 2
    if(key < a[mid]):
        return _binarySearch(key, a, lo, mid)
    elif(key > a[mid]):
        return _binarySearch(key, a, mid+1, hi)
    el

全部评论 (0)

还没有任何评论哟~