• 搜索


    因为这是十分基础的东西,所以反而有些忽略

    写这篇博客,方便复习


    搜索,最基础的算法

    基础到无法再基础的算法

    为了引出搜索,我们不得不说说什么叫做“遍历”

    遍历,正如其名,是将所有的可能性全都看一遍

    比如把书架上所有的书都看一遍

    这就是遍历。

    然而,这种单纯的遍历会导致一些问题无法解决

    例如,找一条通往书架的路

    这种的一般的循环遍历就无法解决了

    原因在于,我们无法找到一种顺序令程序能够有效地找到路径

    于是我们就引出了搜索

    它被人们称为:优雅的暴力

    与遍历相似,它将所有的可能都遍历一遍,一个不落

    为了保证不漏,甚至在一些比较粗略的代码里,搜索会重复看一本书很多遍

    但与遍历不同的是,它不再单纯允许“从头到尾”这一种简单的顺序

    寻找路径这类的“复杂顺序”的问题也可以轻松解决

    这与它的工作模式有关

    搜索将问题分为数层(以找通向书架的路为例,这所谓层也许就是“每一步”吧)

    每一层有不同的决策(还是书架,这里的决策,也就是“往哪个方向前进”)

    每一层的每一个决策通往下一层的下一个决策

    一直通往终点状态(找到了书架或是撞墙)

    不同的搜索采取不同的策略

    有的会选一个方向前进然后选方向再前进然后再前进然后……(DFS,深度优先搜索)

    有的会将搜索范围不断扩大直到将终点纳入搜索范围(BFS,广度优先搜索)

    还有许多种不同的搜索方式

    这就是搜索了

  • 相关阅读:
    你可能不知道的Linux/GNU bash sort多列排序功能
    设置字间距
    设置为灰度图
    点击短信中的url打开某个应用
    AchartEngine绘图引擎
    表格类似Excel
    自定义圆环progressbar
    高低版本方法兼容
    读取并创建excel文件(.xls)
    在android studio中导入github下载的工程
  • 原文地址:https://www.cnblogs.com/lujin49/p/13762427.html
Copyright © 2020-2023  润新知