
算法图解
icodeblocks
这个作者很懒,什么都没留下…
展开
-
图解算法读书笔记第五章
图解算法读书笔记第五章对于一个随机列表,我们的查找操作需要一个一个的排查,算法的复杂度是OOO(nnn),随着列表程度的增加,所用的时间也是线性增加的。但对于一个有顺序的列表,我们可以使用二分查找去做,这样的算法复杂度为OOO(lognlognlogn),相比较而言,时间的减少了很多。对于这一点,我们需要有一个函数能将输入的值做某种映射,将一个输入的任意的值转化为一个唯一确定的标识,这样就可以使用有序数列的二分查找去做处理了。散列函数正好可以实现这样的功能,不论你输入什么,它都可以给你返回一个数字,原创 2020-09-22 20:30:44 · 114 阅读 · 0 评论 -
图解算法读书笔记第四章
快速排序分而治之(divide and conquer,D&C)-一种著名的递归式问题解决方法快速排序的思路就是这样的一种思路。对5,4,7,9,10,1,2,8,6使用快速排序快速排序需要选择一个中间值。然后将大于中间值放一边,小于中间值放另外一边。知道在排序的最长的一侧子序列为2个为止。例如选择第一个元素5为中间值,则排列后的为4,1,2,|5|,7,9,10,8,6(快速排序具有保序性,原有排列顺序不变)继续选子序列的第一个元素为子序列中间值,则排列后为1,2,|4|,5,6,|原创 2020-06-15 17:26:56 · 157 阅读 · 0 评论 -
图解算法读书笔记第三章
算法图解##1.递归算法的理解递归在该书上面的例子是一个层层嵌套的盒子,但在其中的一层盒子里面有钥匙。为了找到钥匙,你需要一层一层的拆盒子。基本的做法是这样:如果打开上一层的盒子看到的还是盒子,那就打开这个盒子。如果开到的是钥匙,那就不用再拆盒子了。上面的这个过程可以总结成两个条件:1.基线条件:如果打开盒子看到钥匙,那么过程结束,问题解决2.递归条件:如果打开盒子没有看到钥匙,而是看到盒子,那么就打开盒子在递归条件下,我们不断的减小问题的规模,直到找到钥匙。计算机对应的算法结构在计算机中原创 2020-06-15 17:25:24 · 171 阅读 · 0 评论