算法
文章平均质量分 53
H阿布
这个作者很懒,什么都没留下…
展开
-
带你用广度优先搜索实现地铁计费功能
文章目录1、地铁是如何实现收费的?1.1 数组实现方式1.2 无向图实现方式2、广度优先搜索找到两个站点最短路径2.1 构建站点对象2.2 用邻接表构造地铁无向图2.3 建立搜索类2.4 测试站点距离计算2.5 为什么广度优先搜索的路径是最短路径3、广度优先搜索的性能3.1 时间复杂度3.2 空间复杂度4、实现更好的地铁计费系统5、本文源码地址1、地铁是如何实现收费的?我们平时坐地铁去上班的时...原创 2020-04-05 22:59:19 · 1291 阅读 · 0 评论 -
Dijkstra双栈算术表达式计算器
一、一个简单的算术表达式(8*(7-2))给出一个算术表达式“(8*(7-2))”,我们很快可以口算出来结果是40。如果把这条式子扔给java计算,结果如何?如果不对这条表达式作任何处理,java或者其他计算机语言都只是把它当做是一个简单的字符串,java不会像人那样认识加减乘除、括号内优先计算等操作,如果真要编程语言算出人类的算术表达式的结果,只能去解析这个表达式,把它解析成编程语言自己能读原创 2018-01-30 16:16:00 · 942 阅读 · 0 评论 -
排序(二):插入排序
一、概念 通常在整理桥牌的方法是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置。在计算机实现中,为了要给插入的元素腾出空间,我们需要将其余所有元素再插入之前都向右移一位。这种算法叫做插入排序二、特点 1、插入排序所需的时间取决于输入元素的初始顺序。 2、对一个很大且其中元素已经有序(或接近有序)的数组进行排序将会比随机顺序的数组或是逆序数组进行排序要快得多。三、算法实现...原创 2018-02-28 20:28:21 · 250 阅读 · 0 评论 -
排序(一):选择排序
一、步骤 1、找到数组中的最小元素; 2、将第一步找到的最小元素与数组第一个元素交换位置(如果第一个元素就是最小元素则和自己交换); 3、在剩下的元素中找到最小元素,将它与第二个元素交换位置。如此反复,直到将整个数组排序。二、优缺点 1、运行时间和输入无关。为了找出最小的元素而扫描一遍数组并不能为下一次扫描提供什么信息。这种性质在某些情况下是缺点,因为一个有序的数组或是主键全部相等的数...原创 2018-02-22 19:47:04 · 290 阅读 · 0 评论