算法
文章平均质量分 56
flying_fish_233
真诚做人,认真做事
展开
-
单源最短路径(堆优化的Dijkstra算法)
Dijkstra算法:设初始节点为v,起始节点到其他节点u的距离为图中v到u的直接线路的距离,如果v和u之间没有直接线路,则d[u]=INF(无穷大)。初始化S={v},寻找最短路径(即在d[]中寻找使d[u]最小的u),将u加入到S中,然后更改到u节点可到达节点的最小距离。再寻找次短路径,并将次短路径的目标节点(设为u)加入到S中,更改到u节点可到达节点的最小距离.如此下去,知道S=V.一般的Di原创 2015-03-15 20:45:25 · 5084 阅读 · 3 评论 -
大数运算——加减乘除和求平方根
大数加法,从低位开始,依次运算,注意进位即可。 大数减法,从低位开始,按位依次做减法,注意借位即可。 大数乘法(此处为高精度*高精度),用到移位和加法(都是对数组进行操作)。以123*456为例说明算法运行过程。先令结果ans数组置零,第一步,计算6*123,结果保存在数组temp1中,再向左移动0位,低位补零。再将ans与temp1相加,相加的结果保存在ans中。第二步,用5*123,结果保存原创 2015-03-11 16:14:49 · 1044 阅读 · 1 评论 -
匈牙利算法
转自:二分图的最大匹配、完美匹配和匈牙利算法这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm);不讲带权二分图的最佳匹配。二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分转载 2015-08-28 15:17:01 · 770 阅读 · 0 评论 -
杭电1010——Tempter of the Bone(DFS、剪枝)
Problem Description The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, and the doggie could feel the ground sinking. He rea原创 2016-01-22 13:38:18 · 386 阅读 · 0 评论 -
杭电1015——Safecracker(dfs、递归枚举排列)
Problem Description === Op tech briefing, 2002/11/02 06:42 CST === “The item is locked in a Klein safe behind a painting in the second-floor library. Klein safes are extremely rare; most of them, al原创 2016-01-27 13:38:16 · 392 阅读 · 0 评论 -
微软公司数据结构+算法面试题
1.把二元查找树转变成排序的双向链表(树) 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 10 / / 6 14 / / / / 4 8 12 16 转换成双向链表 4=6=8=10=12=14=16。首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode转载 2016-02-13 16:00:44 · 756 阅读 · 0 评论 -
最大连续子序列
问题描述: 已知序列 a[0]、a[1]、a[2]、…、a[n],要求出连续子序列a[i]、a[i+1]、a[i+2]、…、a[j](0<=i<=j<=n),使其和最大。算法1:暴力枚举,简单,但是效率不高。由于有三层循环,故时间复杂度为O(n^3)。max=a[0];//max不能为0 for(i=0;i<=n;i++) { for(j=i;j<=n;j++) {原创 2016-02-18 16:46:13 · 459 阅读 · 0 评论