道生一,一生二,二生三,三生万物。—道德经

我们都知道,基础的搜索算法有深搜DFS和广搜BFS。它们的搜索效率都差不多,都是O(E)。只是对于不同的搜索特点,有各自适用场合。

假如有这样一棵树,在写搜索算法之前先分析一下。
如果目标结点在叶子上的可能性非常大,那么通常用深搜。
如果希望目标结点的位置尽可能地离根结点近,那么通常用广搜。
如果目标结点与位置无关,而是每条路径都有一个权值,权值越大,则对应结点是目标结点的可能性越大,那要怎么搜呢?

道德经说:道生一,一生二,二生三,三生万物。
先来解释一下这句话,
道生一:道是事物变化发展的基本规律,气(一)是宇宙间的基本物质。
一生二:气(一)分阴阳(二),阳气上升,阴气下降。
二生三:阴阳(二)交感(三),上面的阳气与下面的地气会相互作用。
三生万物:由于阴阳交感(三),产生了无限的可能。

我的理解是,任何事物都有两个极端,但这两个极端之间不是瞬间转化的,而是会经过许多个中间步骤。转化过程中的许多步骤就是无限的可能。这些步骤中,既有这一段的影子,也有那一端的特点。
并不一定哪一端或者哪一个中间步骤是最好的,最合适的才是最好的。

回到刚才的问题,深搜和广搜看上去不同,但是它们的本质是相似的。

如果有一个容器,用于存储树的节点,每当发现有一个新的节点时,就把它放进容器。
每当当前节点处理完,就从容器中取出一个新的节点。
所谓深搜,就是用栈来实现这个容器,每次取最后放进去的节点。
而广搜,就是用队列来实现这个容器,每次取最先放进去的节点。
最后和最先是两个极端,但是我们没必要要一定要选择极端,我们选择最合适的。
怎样是最合适的,就是容器中权值最大的点。
嗯,这就是A*搜索。

这样的例子还有很多,
例如数组和链表,这是线性有序数据结构的两种物理结构。
数组存储的特点:便于读取,不便于插入删除
链表存储的特点:不便于读取,便于插入删除
考虑一个图这个数据结构,通常图中点的个数比较稳定而边的个数经常增减,
于是用数组存储点而链表存储边,于是就有了邻接表这样的数据结构。

还有插入排序和hash排序,
Hash排序:速度快,数据范围有限
插入排序:速度慢,数据范围无限
如果把这两种排序方法结合,先使用hash进行初排序,再使用插入排序进行精确排序,这不就是我们尝过的桶排序了吗?

以前总是很奇怪,为什么那些牛人们能想出这么多,这么神奇,这么精妙的算法出来。真想钻进他们的脑子里去看一看。
仔细看看这些算法,其实这些算法并不是完全凭空地被创造出来了,它们或多或少都有我们已知的某些算法的影子。只是大牛们因为深刻地理解了那些算法,才能把它们灵活应运,随意施展。用得恰到好处,令人称绝,就成了新的算法。

算法 + 算法 = 新算法相关推荐

  1. 如何发明新算法(一)

    如何发明新算法(一) 算法一直是计算机科学的核心,算法改变世界,算法创造未来!这篇文章我主要从复杂化.简单化两个方面谈谈怎么样发明一个新的算法.新算法在时间复杂度,空间复杂度,预测精度等方面并不一定是 ...

  2. 腾讯天衍实验室夺世界机器人大赛双冠军,新算法突破脑机接口瓶颈

    日前,"2020世界机器人大赛-BCI脑控机器人大赛"公布成绩,腾讯天衍实验室和天津大学高忠科教授团队组成的C2Mind战队,经过多轮赛程的激烈比拼,实力入围BCI脑控机器人大赛& ...

  3. “重构”黑洞:26岁MIT研究生的新算法 | 人物志

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑ 整理 | 若名 出品 | AI科技大本营(ID:rgznai100) 这是一个重要时刻.除了发布跟丈夫的 ...

  4. 不止狂卖芯片,英伟达也飙了新算法:用AI生成逼真的虚假名人照,可用于万物

    本文来源于微信公众号遇见人工智能 如今,"英伟达NVIDIA"这个名字早已经成为GPU.芯片和股价飙升的代名词.但除了卖芯片疯狂赚钱之外,他们也没闲着. 在Deepmind又将升级 ...

  5. 清华校友斩获ACM博士论文奖!相关研究为自动驾驶新算法奠定基础

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 明敏 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 今 ...

  6. Sci. Adv. | 新算法识别治疗肺动脉高压的候选抗癌药物

    癌症治疗药物正在被考虑用于治疗如肺动脉高压(PH)等罕见的非癌性疾病,但还缺乏有效的计算筛选这些药物治疗疾病的方法. 2021年10月20日,来自匹兹堡大学医学院及匹兹堡大学医学中心.普雷里维尤农工大 ...

  7. 超越AlphaZero,DeepMind新算法MuZero登顶Nature | AI日报

    超越AlphaZero,DeepMind新算法MuZero登顶Nature 2016年,DeepMind 推出了第一个人工智能程序 AlphaGo,在围棋游戏中击败人类.两年后,它的继任者AlphaZ ...

  8. 告别视频通话“渣画质”,英伟达新算法最高压缩90%流量

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自 | 量子位 为了让网速慢的用户用上高清通话,英伟达可谓绞尽脑汁.他们开发的新AI ...

  9. 谷歌发布深度学习新算法,适用于真实机器人的技能学习

    https://www.toutiao.com/a6649215346496504327/ 2019-01-22 15:11:28 通过这种名叫SAC(柔性致动/评价)的强化学习算法,机器人能很快地完 ...

  10. 欧盟「人脑计划」​最新进展:新算法模拟生物进化,为大脑如何工作提供新见解...

    来源:ScienceAI 编辑:凯霞 2013 年,欧盟「人脑计划」(Human Brain Project,HBP)正式启动,是欧洲最大的脑科学项目,也是欧盟资助的最大研究项目之一.是欧盟首批为期 ...

最新文章

  1. AI 能匹敌程序员了吗?OpenAI 新研究展​示 NLP 大模型的局限性
  2. 命令行 上下文环境 与 相对路径
  3. Realm Mobile Platform添加水平可扩展性,支持遗留数据源和复制
  4. 【PAT (Advanced Level) Practice】1093 Count PAT‘s (25 分)
  5. Linux下CMake简明教程
  6. 2019-1-15 课后作业
  7. latex公式在括号中编辑(多行公式)
  8. HDOJ 1036 Average is not Fast Enough!
  9. 手机自动化测试IDE之Airtest基本操作方法,学完让你解放双手
  10. 1、javascript的继承function
  11. Flask模板操作一:基本使用
  12. Atitit mybatis 简化开发与提升开发效率法 目录 1.1. 使用注解模式代替xml模式 1 1.2. 使用通用mapper代替专用mapper 1 1.3. 使用js等脚本语言来输出sq
  13. Excel 单元格 自定义格式详解
  14. 函数对称性常见公式_函数对称性
  15. 北京邮电大学计算机专业录取名单,祝福!“跪地谢母”考生被北京邮电大学计算机类专业录取...
  16. 安卓蓝牙设置接收订阅通知断开第二次连接不上或者自动断开status=8的解决办法。
  17. 怎样恢复电脑丢失的文件?
  18. Linux下使用md5sum计算和检验MD5码
  19. Sublime Text 全程图文指引
  20. Android端集成支付宝支付

热门文章

  1. 从viewport发现小米手机参数不一致
  2. 快速了解 Java 线上问题快速诊断神器 Arthas
  3. Android 9.0 新特性
  4. 利用自媒体推广实用好方法!
  5. 【Linux】系统管理命令
  6. 基于JAVA二次元文化网站计算机毕业设计源码+系统+lw文档+部署
  7. linux usb 全向麦克风,派尼珂USB视频会议全向阵列麦克风NK-OM300U
  8. 『大牛公司机构近期研究报告大合集』第二版
  9. 腾讯新闻评论数据爬取
  10. ftdi utilities