
算法-数据结构入门
处日先生
web前端小白,请各位大佬多多关照
展开
-
算法-数据结构入门(二)——《算法图解》
上一节我们说了一个一些简单概念,算法,数据结构,数组,链表,大O表示法等,也介绍了一个最简单的查找算法:二分查找,今天我们了解一个简单的排序算法:选择排序。看问题:给一个无序数组[5,3,8,9,2,4,1,10],然后对他进行从小到大的排序输出。思考:简单的想法就是遍历一遍数组,找出最小(大)的一个元素,把它放在一个新数组(可以是本数组起始)里面,然后删除这个元素,从剩下的元素里面继续寻...原创 2019-02-21 15:28:11 · 185 阅读 · 0 评论 -
算法-数据结构入门(三)——《算法图解》
今天简单聊聊递归,递归还是比较难理解的,虽然它很好用。在《算法图解》的帮助下,我也是简单的理解了一下,下面把书上大佬的想法及我自己的收获整理一下。先介绍一种新的数据结构:栈栈 是一种简单的数据结构,可以看成是一个桶,从顶部插入数据,也从顶部弹出数据,且只有这两种操作递归,就是自己调用自己,可以理解为一个函数内部调用了自己本身,下面举一个简单的例子:求10以内的阶乘,代码如下:...原创 2019-02-21 16:51:42 · 270 阅读 · 0 评论 -
算法-数据结构入门(四)——《算法图解》
我们说算法是解决问题的思路及步骤,有时候会遇到已知算法解决不了的问题,这个时候就想办法用一些方法,这次说一下分而治之(D&C)——一种递归式问题解决方法,以及一个利用这个思想的第一个算法——快速排序分而治之工作原理:1.找出简单的基线条件;2.确定如何缩小问题的规模看一个小例子:求数组[1,2,3]元素之和先确定基线条件:数组为空或者只有一个元素缩小问题规模:可以1...原创 2019-02-21 20:26:29 · 171 阅读 · 0 评论 -
算法-数据结构入门(五)——《算法图解》
这节开始进入图的学习。下面介绍几个新概念:散列表(字典):一种新的数据结构,形式是“键-值对”,可快速插入、查找队列:一种新的数据结构,可以理解为排队买东西,队尾插入,队首弹出图: 模拟一组连接,由节点和边组成下面引入一个书上的例子:你要在你的关系圈中找一个人,假设这个人名字最后一个字母是'm',关系圈指的是你的朋友,你朋友的朋友,一直找下去,直到找到或关系圈结束。思考:我们每...原创 2019-02-21 21:59:31 · 467 阅读 · 0 评论 -
算法-数据结构入门(六)——《算法图解》
在(五)里面我们简单说了广度优先搜索算法,它可以找出到达目标节点的段数最少的路径;但是像下图这样(书上图):从双子峰到金门大桥用时最少的路径,怎么求呢?如果 用广度优先搜索,最后得到的最短路径是3段,即最上面的那条路径,但不是用时最短的,这节我们介绍一种新的算法:狄克斯特拉算法。狄克斯特拉算法包含四个步骤:1.先找出最便宜的节点,即在最短时间可以到达的节点2.更新该节点邻居的开...原创 2019-02-22 14:52:03 · 182 阅读 · 0 评论 -
算法-数据结构入门(一)——《算法图解》
先简单说一下概念:算法:就是解决问题的方法、步骤;数据结构:数据之间的相互关系(逻辑结构)+数据的逻辑结构在计算机中的存储(物理结构)简单说一下两种数据结构:数组:内存连续的一种数据存储。就是申请一块内存,挨个存放数据,地址连续,通过索引(下标)获取存储的数据;缺点是:1.内存需要连续,容易溢出或者浪费内存;2.删除、添加都需要繁琐的移动后面的元素,不过高级语言都有封装好的添加...原创 2019-02-20 19:03:28 · 222 阅读 · 0 评论