1 # Dijkstra算法——通过边实现松弛 2 # 指定一个点到其他各顶点的路径——单源最短路径 3 4 # 初始化图参数 5 G = {1:{1:0, 2:1, 3:12}, 6 2:{2:0, 3:9, 4:3}, 7 3:{3:0, 5...
分类:
编程语言 时间:
2015-07-31 17:47:42
阅读次数:
119
根据维基百科的伪代码实现:广度优先BFS:使用队列,集合标记初始结点已被发现,放入队列每次循环从队列弹出一个结点将该节点的所有相连结点放入队列,并标记已被发现通过队列,将迷宫路口所有的门打开,从一个门进去继续打开里面的门,然后返回前一个门处 1 """ 2 procedure BFS(G,v) i....
分类:
编程语言 时间:
2015-07-31 17:46:02
阅读次数:
235
队列结构可以使用数组来模拟,只需要设定头和尾的两个标记参考自《啊哈》 1 # 按书中的代码会出现索引越界的问题(书中申请了超量的空间) 2 # 尝试令tai初始为len(q)-1则不会出错但少了最后一位 3 # 通过异常处理,捕获出界异常则直接跳出循环 4 def queue_demo1(q): 5...
分类:
编程语言 时间:
2015-07-31 17:42:34
阅读次数:
129
今天来说说线性表的实现
这里以List作为例子
package com.ray.testobject;
public class List {
private int length;
private Man[] array;
public int getLength() {
return length;
}
public void setLengt...
分类:
编程语言 时间:
2015-07-31 01:32:32
阅读次数:
170
链表常见题型(java版)
栈和队列常见题型(java版)...
分类:
编程语言 时间:
2015-07-28 18:29:18
阅读次数:
133
1.线性表概念
线性表是由零个或者多个数据元素组成的有序的序列。
图示:
2.特点
2.1 有序
我们可以从上图看见,线性表里面的元素是一个挨着一个顺序排下去的,就像平常小朋友排队等放学的样子
2.2 允许零元素,也就是空表
2.3 第一个元素有且仅有一个后继,最后一个元素有且仅有一个前驱,其他元素有且仅有一个前驱以及有且仅有一个后继
我们可以从上图看见,线性表里面第一...
分类:
编程语言 时间:
2015-07-28 16:00:20
阅读次数:
110
今天我们来谈一下如何计算时间复杂度。
时间复杂度概念:(百度版)
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。
计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可...
分类:
编程语言 时间:
2015-07-27 11:15:21
阅读次数:
187
其实所有的数据结构都是“图”。图其实就是一系列的顶点和边的集合。如果边有指向性就叫做有向图,否则就是无向图,边也可以有权值。任意两点间都有路径连接的图叫做连通图,顶点连接的边数叫做这个顶点的度。 没有圈的连通图就是所谓的树,没有圈的非连通图就是森林。1、图的表示 (1)邻接矩阵 使用|V|...
分类:
编程语言 时间:
2015-07-26 12:31:37
阅读次数:
148
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace C数据结构与算法 { class Program...
分类:
其他好文 时间:
2015-07-23 23:28:26
阅读次数:
184