Day 18:二分查找算法

Posted 算法刷题日记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day 18:二分查找算法相关的知识,希望对你有一定的参考价值。


Day 18:二分查找算法

Day 17 作业题总结

写出几种常见复杂度对应的算法,星友们给出的答案都很准确,在这里参考星友聂磊的答案:

时间复杂度:

常见操作:哈希查找数组取值常数加减乘除

: 二分查找

计算数组中所有元素和,最大,最小

归并排序,堆排序,希尔排序,快速排序

:冒泡,选择排序

:三元方程暴力求解

:求解所有子集

:全排列问题。比如:给定字母串,每个字母必须使用,且一次组合中只能使用一次,求所有组合方式;另外还要经典的旅行商 TSP 问题

下面这幅图太直观了:

其中,复杂度为: 是难解的问题, , 都是可以接受的解, , 的解是梦寐以求的。

Day 18 :二分查找

二分查找算法,binary search algorithm,也称「折半搜索算法」、「对数搜索算法」

它的使用前提:是一种在「有序数组」中查找某一特定元素的搜索算法。

请补全下面二分查找算法:

# 返回hkey在数组中的索引位置
def binary_search(arr, left, right, hkey):
    """
    arr:有序数组
    left:查找区间左侧
    right:查找区间右侧
    hkey:带查找的关键码
    备注:left, right 都包括在内,找不到返回 -1
  
    """

    #
    #
    #


长按二维码关注

以上是关于Day 18:二分查找算法的主要内容,如果未能解决你的问题,请参考以下文章

Day589.二分查找(非递归) -数据结构和算法Java

Day568.线性查找&二分查找 -数据结构和算法Java

PY算法90天挑战--Day8二分查找

Python Day 15 (递归函数二分查找算法)

Day 8: 二分查找

python s12 day4 算法基础之二分查找