LaneBlog

LaneBlog

每一个没有起舞的日子都是在辜负生命。

最新文章

算法十:多源最短路径(任意两点最短路径)之Floyd-Warshall算法

任意两点最短路径被称为多源最短路径,即给定任意两个点,一个出发点,一个到达点,求这两个点的之间的最短路径,就是任意两点最短路径问题,多源最短路径,而Floyd-Warshall算法最简单,只有5行代码,即可解决这个问题。

任意两点最短路径被称为多源最短路径,即给定任意两个点,一个出发点,一个到达点,求这两个点的之间的最短路径,就是任意两点最短路径问题,多源最短路径,而Floyd-Warshall算法最简单,只有5行代码...

算法九:深度优先搜索和广度优先搜索来遍历图

图的遍历,我们用深度优先搜索遍历图和广度优先搜索遍历图。最简单的一种图的遍历-穷举!

图的遍历,我们用深度优先搜索遍历图和广度优先搜索遍历图。最简单的一种图的遍历-穷举! 如下的图: 点1和点2,3,5有边,点3和点5有边,点2和点4有边。mac画的好累。。没有鼠标。。 输入:第一行是...

算法八:炸弹人游戏之深度优先搜索

深度优先搜索,我们本篇讲用深度优先搜索来解决上一篇的炸弹人游戏,领略深度优先搜索和广度优先搜索的不同。

上一章我们编写了一个小游戏:炸弹人游戏。使用广度优先搜索解决的,本章将用深度优先搜索来解决。 《 关于广度优先搜索解决炸弹人游戏和炸弹人游戏的描述 》点击查看 《 什么是深度优先搜索 》点击查看 深度...

算法七:广度优先搜索

什么是广度优先搜索?广度优先搜索也称为宽度优先搜索,一层一层不断的扩展来达到搜索的目的。以一个点为中心,将上下左右4个点都搜索过后,再以这4个点分别为中心点,搜索该中心点的上下左右4个点,依次类推。

什么是广度优先搜索?广度优先搜索也称为宽度优先搜索,一层一层不断的扩展来达到搜索的目的。以一个点为中心,将上下左右4个点都搜索过后,再以这4个点分别为中心点,搜索该中心点的上下左右4个点,依次类推。...

算法六:深度优先搜索

什么是深度优先搜索?理解深度优先搜索的关键在于解决“当前如何做”,至于“下一步如何做”和“当前如何做是一样的做法”。深度优先搜索是Depth First Search, DFS。

什么是深度优先搜索?理解深度优先搜索的关键在于解决“当前如何做”,至于“下一步如何做”和“当前如何做是一样的做法”。深度优先搜索是Depth First Search, DFS。基本模型如下: [co...

算法五:栈

什么是栈?先进后出/后进先出为栈。与队列相反。就是先来的要排到最后,后来的却可以先走。栈最早是由图灵奖命名来源者图灵发明,最初为解决程序的调用和返回。而栈的应用之一就是递归。

什么是栈?先进后出/后进先出为栈。与队列相反。就是先来的要排到最后,后来的却可以先走。栈最早是由图灵奖命名来源者图灵发明,最初为解决程序的调用和返回。而栈的应用之一就是递归。 [code] #incl...

算法四:队列

什么是队列?队列就是先进先出,也就是现实生活中我们的排队,先来的先走,后来的后走,一个接一个,这就是队列。队列优点很明显,按照顺序谁也不抢。缺点也很明显,如果排头的走了,那么第二个要排头,第三个要到第二个,每个都要前进一步,对计算机来讲这就是资源的损耗。

什么是队列?队列就是先进先出,也就是现实生活中我们的排队,先来的先走,后来的后走,一个接一个,这就是队列。队列优点很明显,按照顺序谁也不抢。缺点也很明显,如果排头的走了,那么第二个要排头,第三个要到第...

算法三:快速排序

什么是快速排序?快速排序,是最常用的排序算法,就是选择待排序的列表中的其中一个数字,作为基准数,然后把小于基准数的所有数字放到这个数的左边,大于这个数的所有数字放到基准数的右边。然后将左右分成2部分,继续上述操作,不断递归。快速排序的时间复杂度是O(NlogN)。

快速排序,是最常用的排序算法,就是选择待排序的列表中的其中一个数字,作为基准数,然后把小于基准数的所有数字放到这个数的左边,大于这个数的所有数字放到基准数的右边。这个时候开始分为两部分,左边和右边。第...

算法二:冒泡排序

冒泡排序是最被人熟知的排序算法。什么是冒泡排序?冒泡排序的特点是好邻居好说话,核心思想是一个每次比较两个相邻的元素,如果他们的大小顺序反了,就把他们交换过来。N个数就有N-1轮,每一轮把一个数字放在它正确的位置上。冒泡排序时间复杂度是O(N2)

冒泡排序是最被人熟知的排序算法。什么是冒泡排序?冒泡排序的特点是好邻居好说话,核心思想是一个每次比较两个相邻的元素,如果他们的大小顺序反了,就把他们交换过来。N个数就有N-1轮,每一轮把一个数字放在它...

算法一:桶排序

什么是桶排序?桶排序是最快最简单的一种排序算法,甚至严格来说都不能算作算法。桶排序的优点是特别快,缺点是内存利用率特别差。桶排序的时间复杂度是O(M+N)。

桶排序, 是最快最简单的排序。有多宽维度,就要申请多大的数组。比如100分的试卷,就要申请101个数组(试卷是0-100分),有人考了100分,就把array[100]加1,有人考了90,就把arra...