240 发简信
IP属地:陕西
  • 120
    学习日记-08- 关于 狄克斯特拉算法

    用于解决加权图(有向无环图)中前往目的地的最短路径。不能有负权边 算法步骤: 1. 找到最短时间内前往的节点 2. 对该节点的邻居,检查是否有前往它们的更短路径 3.重复直到...

  • 学习日记-07-关于 广度优先搜索

    广度优先搜索(breadth-first search)处理是否有A到B的路径,如果有最短路径是什么。 思路:建立图---用广度优先搜索解决问题 在顺序检查是否为寻找的目标时...

  • 学习日记-06-哈希表

    哈希表又叫散列表,python中提供的是函数dict。哈希表是一种强大的数据结构,操作速度很快。非常适合用于防止重复。 散列函数:将输入映射到数字 1)每次映射的输出必须一致...

  • 120
    学习日记-05-关于 快速排序

    快速排序运用了递归的思想--分而治之(divide and conquer)时间复杂度O(N*logN) 分而治之一般有两个步骤: 1)找到一个基线条件。这是不再调用自己的条...

  • 学习日记-04-关于 递归

    递归的基本思想是分解,让函数调用自己。在性能上,递归与循环一样,没有优势,但是递归很多时候在思路上更为清晰。 两个重要条件:基线条件,递归条件 基线条件(base case)...

  • 120
    学习日记-03-关于 选择排序

    排序是很多算法的基础,很多算法的后续步骤是建立在有序的基础之上的。 选择排序:遍历一个列表,每一次遍历都找到整个数组中最小的值,然后将最小的值放在一个新的数组中,并在原列表中...

  • 120
    学习日记-02-关于 二分查找

    对象:有序的元素列表(list) 目标:一个元素(target) 时间复杂度:O(logN) log以2为底 思路:设置一个循环,在每一次循环中都比较target和guess...

  • 学习日记 - 01 - 关于算法的复杂度问题

    算法复杂度的回顾,一般来说考察复杂度会和各种排序算法联系起来。因此弄清这些排序算法的具体的操作步骤就能明白为什么相应的时间复杂度和空间复杂度是这么多。 常用的表示方法是大O表...