摘要: 查找算法是指从一个集合里比如数组,列表,树里查找我们想要的值。 我们从最简单的线性查找开始。 线性查找,就是遍历集合里的元素,查看是否有和我们想要查找的值相同的,有则查找成功,没有则查找失败。 比如: 5,8,6,9,1,7,3,2,4 我们要找3,那从5开始依次往后,到了第7个(下标6),我们找到 阅读全文
posted @ 2025-01-18 20:41 Eagle6970 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 汉诺塔是个古老的游戏,它可以用递归来解决。 关于汉诺塔的玩法和介绍,请参考这里。 算法思想: 1. 目标是把最底下,最大的盘从起始柱子移到终点柱子 2. 那我们要先把除了最大的盘的其他盘子从起始柱子移到临时柱子上 3. 然后把最大的盘子从起始柱子移到终点柱子 4. 把除了最大盘的其他盘子从临时柱子移 阅读全文
posted @ 2025-01-17 23:23 Eagle6970 阅读(45) 评论(0) 推荐(0) 编辑
摘要: Fibonacci 和递归 Fibonacci在递归界有很重要的地位。它能很好的说明递归是怎么方便的解决问题的,也能很好的说明递归也不是万能的,它是有限制的,那么,怎么消除这些限制,我们将用Fibonacci的不同实现理解这些问题。 什么是Fibonacci数列 fibonacci(0) = 0 f 阅读全文
posted @ 2025-01-17 19:55 Eagle6970 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 递归让我们把问题由大分小,小到我们能够轻松处理。递归方法有两个要注意的点:1. 递归方法会重复的被调用;2. 必须有一个终止条件,否则方法调用不停,会导致stack overflow。 看下面的一个例子,这个没有终止条件,会报错! function hello() { console.log("I' 阅读全文
posted @ 2025-01-15 13:39 Eagle6970 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 图(太难了 。。。) 图是组织信息的一种方式,它可以表示信息之间是怎么样互相联系的。它可以帮助我们发现和分析事物间的关系。 看一个例子,下面这就是一个图:它有节点,和边,下面这个例子的边它没有方向,所以也叫无向图。 Elaine Kramer (node) \ / (edge) Jerry | Ge 阅读全文
posted @ 2025-01-15 09:44 Eagle6970 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 前序树(Trie/Prefix tree),它的一个典型的应用场景在搜索引擎里,当你输入查询关键字的时候,会联想自动补齐你想要输入的内容。比如,你输入app,下面可能会出来联想Apple, Applied等等。 什么是Trie? Trie(读作Try)是这样一个数据结构,它把短语或者单词分解字母,然 阅读全文
posted @ 2025-01-11 10:11 Eagle6970 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 哈希表也叫Hashmap或者Dictionary,它存储和检索都非常快,所以常用于缓存数据供后续快速访问。 哈希函数,是这样的一个函数,你提供一个input,它会返回一个唯一的值(hash code)。只要你的input是相同的,这个哈希函数会返回同样的output。 从哈希函数到哈希表 哈希表底层 阅读全文
posted @ 2025-01-09 20:08 Eagle6970 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 在日常生活中,我们常常有很多想法要去实现,但是时间有限,所以要把想法分优先级,哪个是最重要的,先做它。堆(heaps)是这样一个数据结构,它让你容易(O(1))的获取最高优先级的想法,并且提供了快速(O(log n))插入,移除想法操作。 堆分为最大堆和最小堆,最大堆就是说root是最大值,最小堆是 阅读全文
posted @ 2025-01-08 22:53 Eagle6970 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 二叉查找树,它是一类特殊的二叉树,除了基本的二叉树规则外,还要满足: 1. 左边的子节点要小于父节点值 2. 右边的子节点要大于父节点值 图示: 添加节点: 42 | | 24 99 | | | 15 50 120 | 64 移除节点: 1. 如果移除的是叶子节点,那直接移除 2. 如果移除的是一个 阅读全文
posted @ 2025-01-07 20:21 Eagle6970 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 二叉树是一种特殊的树,他满足: 1. 每个节点只能有0,1,2个孩子节点 2. 只能有一个根节点 3. 从根节点到任意节点,只能有一条路径 二叉树的变种: 1. 完满二叉树(Full Binary Tree):每个非叶子节点必须有两个孩子节点 2. 完全二叉树(Complete Binary Tre 阅读全文
posted @ 2025-01-06 19:33 Eagle6970 阅读(7) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示