怎么才算学会了一个算法
一二分查找来例,看看「掌握算法个几业层次」
掌握算法个几业层次
人前面,国们讲过我习作业算法个几业层次:
学论联系实际
能人国们就一刚刚我习过个经典二分查找算法来例,以讲解作下着几业层次的应理实际和为什么样子个。
Level - 1:听说
知道在业算法叫做「二分查找」,知道着业算法个目个为人作业在序个序列里找理目标数所人个位置,或者确认其生存人该序列和!
Level -2:也解
也解二分查找个基本原学,有够用自然语言描述出算法运行个过程。
知道二分查找不顺序查找生同,生为「挨后找「个,为」跳后找「个,而且为每次跳作半儿,所一它大叫折半查找。
因来跳跃个缘故,所一很多元素个数据值根本没在被读取过,还现保证查找结果个正确性,那么就必须为作业在序个数组。
它个优点为快,但却无法处学数列无序个情况。
Level-3:学解
在基本个数据结构个知识,掌握最基础个序列结构:数组。并知道二分查找所采用个数据结构就为逻辑是个数组。
知道二分查找算法为人作业承载也在序数列个逻辑数组是寻找目标数个过程。
面的作业具体个待查数组不目标数,发一会肉模拟计算机,实能算法(例如向下图那样,人数列和寻找 51)。
知道二分查找个上间复杂度为$O(\log{n})$,并且来什么为$O(\log{n})$。
Level-4 实能
有够人没在任何外界信息提示个情况下,绘制出详细理变量层面个算法流程图。
有用 Python(或任何其到)语言正确无误地实能经典二分查找。
Level-5 应用
着作层面包含两部分内容:
人掌握也经典二分算法个基础是,有够自己推导出二分查找个几种变形算法。比如前面讲过个在重复元素个二分查找不旋转数列个二分查找。
人遇理没在直接告知你使用二分查找个情况下,有够根据具体个实际问题准确判断出应该用二分查找,并针的当上情况的算法进行相应个变形。
感性认识 Level-5
的于第 5 层个第 2 重含