张森ZS

write code everyday

导航

计算机速成课 第十三集 算法入门

1. 算法简介

  • 定义:解决问题的具体步骤
  • 特点:即使结果一致,有些算法会更好,一般来说,所需步骤越少越好
  • 历史:算法一词来自波斯博识者:阿尔·花拉子密,1000 多年前的代数之父之一。

2. 种类介绍

  • 记载最多的算法之一是「排序」
    • 使用场景:
      • 找最便宜的机票
      • 按最新时间排邮件
      • 按姓氏排联系人
    • 特点:排序有很多种方法
    • 举例
      • 冒泡排序
      • 意面排序
      • 选择排序
      • 归并排序
        • 算法复杂度 O (n * log n)
        • 比「选择排序」更有效率
      • 图搜索
        • 解决该问题的算法发明者:理论计算机科学伟人 Edsger Dijkstra
        • 该算法叫「Dijkstra 算法」
          • 原始版本,构思于 1956 年
          • 算法复杂度是 O(n ^ 2)
          • 几年后得到改进,变成 O(n log n + l)
        • 图搜索的算法有很多,每次使用谷歌地图时,类似 Dijkstra 的算法就在服务器上运行,找最佳路线

3. 算法复杂度

  • 指:算法的输入大小和运行步骤之间的关系,表示运行速度的量级
  • 计算机科学家们把算法复杂度叫「大 O 表示法」
  • 举例
    • 算法复杂度 O(N^2) 效率不高

posted on 2021-12-24 21:44  张森ZS  阅读(81)  评论(0编辑  收藏  举报