![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
海人001
爱码仕
展开
-
菜鸟学算法--二分查找
目录什么是二分查找小结编程实现什么是二分查找二分查找是计算机编程中的一种查找算法,在一段有序序列中,通过不断将猜测值与目标值进行比对,逐渐缩小搜索区间,逼近目标值,最后获得目标值位置。如同其名,每次的猜测值为区间内排序中间的值。例如一个1~10数组 [1,2,3,4,5,6,7,8,9,10],查找9的位置,算法执行过程如下:开始查找:区间1倒10,最小值:1,最大值...原创 2019-01-29 09:11:06 · 11208 阅读 · 0 评论 -
菜鸟学算法--选择排序
什么是选择排序上一篇学习了二分查找算法,但是要求序列的有序性,所以这一篇学习了排序算法--选择排序,选择排序的原理是先选择样本中的极值(最小值或最大值),比如每次都选择最小值,让后将其有顺序的储存在容器中,直至样本枯竭。例如有一样本[3,6,8,9,5,4,7,1,2,0],使用选择排序从小到大排序过程如下:样本:[3,6,8,9,5,4,7,1,2,0]有序集合:[]第一次选...原创 2019-01-29 10:50:56 · 10277 阅读 · 0 评论 -
菜鸟学算法--递归
什么是递归递归指计算机程序在运行时方法、函数调用自身的一种现象,适用于需要不断的深层次推导才能获得的结果,例如一段菲波那切数列,1,1,2,3,5,8... ...,每个数等于前两个数相加,求第7个数是什么,递归过程如下:初始值:1,1fn7 = fn6 + fn5fn5 = fn4 + fn3fn3 = fn2 + fn1 = 2fn4 = fn3 + fn2 = 2+1...原创 2019-01-29 14:53:04 · 10468 阅读 · 0 评论 -
菜鸟学算法--快速排序
什么是快速排序快速排序是一种排序方法,通过选择基准值,将样本分为小于基准值+基准值+大于基准值三部分,对于初基准值以外的部分,同样使用选择基准值并划分的方法,快速排序速度大于选择排序,示例如下,例:对数组[5,3,1,9,7]进行选择排序第一次分区:基准值:5 ,小于基准值数组 = [],大于基准值数组 = []3<5,小于基准值数组 = [3],大于基准值数组 = []...原创 2019-01-30 11:21:31 · 10505 阅读 · 0 评论 -
菜鸟学算法--广度优先算法
什么是图广度优先算法是在图中的一种遍历方法,图用来模拟一组连接,关系网等等,图由节点node和边edge组成,一个节点可能与众多节点直接相连,这些节点被称为邻居什么是广度优先搜索广度优先搜索是一种用于图的搜索算法,可以解决两类问题,如上图,A节点有前往到G节点的路径吗?A节点前往G节点那条路径最短?广度优先搜索通过不断遍历邻居节点,并以队列进行储存遍历顺序(先进先出)。如上图的...原创 2019-01-31 11:00:36 · 10648 阅读 · 0 评论 -
菜鸟学算法-狄克斯特拉算法
什么是狄克斯特拉算法狄克斯特拉算法用于解决有图的最短路径寻找,类似于深度优先算法,每次只走最短距离,走过的不在走,继续寻找最短距离,并不断更新到节点的开销-即是权重,保证开销最小才更新,最后所有节点全部查找完毕即可。例如下图:初始开销:A:6,B:2,终点:∞算法执行过程如下起点--B--终点 终点开销更新为 7起点--B--A A点开销更新为5起点--B--A--...原创 2019-02-12 16:13:08 · 10375 阅读 · 0 评论 -
菜鸟学算法--贪婪算法
目录什么是贪婪算法集合覆盖问题什么是贪婪算法贪婪算法很简单:每步都采取最优的做法。用专业术语说,就是每步都选择局部最优解,最终得到的就是全局最优解。集合覆盖问题假设你办了个广播节目,要让每个地方的听众都收听得到。为此,你需要决定在哪些广播台播出。在每个广播台播出都需要支付费用,因此你力图在尽可能少的广播台播出。现有广播台名单如下。stations = {} #广播清单...原创 2019-02-13 10:07:27 · 10387 阅读 · 0 评论