摘要: 冒泡排序(Bubblesort)是性能比较差的排序方法。 思想,从头开始,依次往后两两比较,如果前面的比后面的大,那么把两元素调换。这样一轮下来,最大的数会到最后面。第二轮类似,结果第二大的数会到倒数第二的位置,然后第三轮,直到排序完成。 举例: 6,2,0,9 第一遍 2,6,0,9 2,0,6, 阅读全文
posted @ 2025-02-11 22:53 Eagle6970 阅读(22) 评论(0) 推荐(0)
摘要: 快速排序(Quicksort)真的很快,因为它用了分而治之的思想。 基本思想: 1. 选一个中间点的值作为中心点(pivot) 2. 以中心点为基准 2.1 小于中心点的值,放中心点左边 2.2 大于中心点的值,放中心点右边 3. 对左右数列,重复1,2,最终会得到排好序的数列。 数列举例 4,10 阅读全文
posted @ 2025-02-07 22:46 Eagle6970 阅读(32) 评论(0) 推荐(0)
摘要: 深度优先搜索(DFS)和广度优先搜索(BFS) 这个思路和我们之前的二叉树的遍历类似。 以这个图为例:这是个无向图,有环。 B | A D F | | | | C E G H 同样,两个步骤: 1. 节点被发现,这个是说该节点被发现存在; 2. 节点被访问过,这个是说该节点被检查了,并且是否有子节点 阅读全文
posted @ 2025-02-05 20:52 Eagle6970 阅读(32) 评论(0) 推荐(0)
摘要: 树是分等级的数据结构,遍历树有两种策略,一是广度优先,一是深度优先。 广度优先 a level 0 | | b c level 1 | | | | d e f g level 2 | | h i level 3 广度优先,我们从level 0开始,每层节点访问完毕,接着往下一层。 a,b,c,d,e 阅读全文
posted @ 2025-01-18 22:09 Eagle6970 阅读(48) 评论(0) 推荐(0)
摘要: 二分查找有一个最关键的前提,查找的集合必须是排好序的!它的思想是分而治之。 给定数组:1,3,5,10,32,40,60,71,80,99 查找:60 1. 找到中间点 分两种情况: 1. 奇数个元素,很容易找到中间点 a, b, c, d, e -> c是中间点 2. 偶数个元素,我们取中间偏左位 阅读全文
posted @ 2025-01-18 22:04 Eagle6970 阅读(26) 评论(0) 推荐(0)
摘要: 查找算法是指从一个集合里比如数组,列表,树里查找我们想要的值。 我们从最简单的线性查找开始。 线性查找,就是遍历集合里的元素,查看是否有和我们想要查找的值相同的,有则查找成功,没有则查找失败。 比如: 5,8,6,9,1,7,3,2,4 我们要找3,那从5开始依次往后,到了第7个(下标6),我们找到 阅读全文
posted @ 2025-01-18 20:41 Eagle6970 阅读(79) 评论(0) 推荐(0)
摘要: 汉诺塔是个古老的游戏,它可以用递归来解决。 关于汉诺塔的玩法和介绍,请参考这里。 算法思想: 1. 目标是把最底下,最大的盘从起始柱子移到终点柱子 2. 那我们要先把除了最大的盘的其他盘子从起始柱子移到临时柱子上 3. 然后把最大的盘子从起始柱子移到终点柱子 4. 把除了最大盘的其他盘子从临时柱子移 阅读全文
posted @ 2025-01-17 23:23 Eagle6970 阅读(140) 评论(0) 推荐(0)
摘要: Fibonacci 和递归 Fibonacci在递归界有很重要的地位。它能很好的说明递归是怎么方便的解决问题的,也能很好的说明递归也不是万能的,它是有限制的,那么,怎么消除这些限制,我们将用Fibonacci的不同实现理解这些问题。 什么是Fibonacci数列 fibonacci(0) = 0 f 阅读全文
posted @ 2025-01-17 19:55 Eagle6970 阅读(197) 评论(0) 推荐(0)
摘要: 递归让我们把问题由大分小,小到我们能够轻松处理。递归方法有两个要注意的点:1. 递归方法会重复的被调用;2. 必须有一个终止条件,否则方法调用不停,会导致stack overflow。 看下面的一个例子,这个没有终止条件,会报错! function hello() { console.log("I' 阅读全文
posted @ 2025-01-15 13:39 Eagle6970 阅读(19) 评论(0) 推荐(0)
摘要: 图(太难了 。。。) 图是组织信息的一种方式,它可以表示信息之间是怎么样互相联系的。它可以帮助我们发现和分析事物间的关系。 看一个例子,下面这就是一个图:它有节点,和边,下面这个例子的边它没有方向,所以也叫无向图。 Elaine Kramer (node) \ / (edge) Jerry | Ge 阅读全文
posted @ 2025-01-15 09:44 Eagle6970 阅读(38) 评论(0) 推荐(0)