本文参考Crash Course课程

算法:解决问题的具体步骤
记载最多的算法——排序算法
算法复杂度(大O表示法):算法的输入大小和运行步骤之间的关系,表示运行速度的量级
选择排序:从第一个数开始,找到其中最小的数,并与之交换位置,最终得到排序结果,算法复杂度为O(n^2)
归并排序:

  1. 检查数组大小是否 > 1
  2. 如果是,把数组分成两半,重复步骤1;如果否,进行步骤3
  3. 每两组进行大小比较,小的放前,大的放后
    算法复杂度为O(n*log n)

图搜索算法
图:用线连起来的一堆节点
路线长度:可以用成本或权重代称
暴力算法:复杂度为O(n!),n为节点数
Dijkstra算法:最初版本构思于1956年,从成本最低的节点开始,跑到所有相邻节点,记录成本,计算到每点的最低成本即可,算法复杂度最初为O(n^2),现经过改进为O(n log n + l),n为节点数,l为多少条线