
算法
九德真君
君子无财便是德
展开
-
二叉树的非递归遍历
二叉树节点:public class Node{ public int data = 0; public Node lchild = null; public Node rchild = null;}前序遍历:List PreorderTraverse(Node root){ List nodes = new List(); if (root == null) {原创 2017-02-23 10:39:08 · 305 阅读 · 0 评论 -
斐波那契查找
斐波那契查找是一种在有序表中高效查找指定元素的算法,比折半查找要复杂一些,主要复杂在要多做不少准备工作。下面看它的工作流程: 1.计算并保存一个斐波那契序列的数组,方便以后取值。数组名记为f,例如f[1]=1,f[3]=3,f[5]=8 2.把有序数组的长度扩充到a.length=f[k]-1,k是满足条件的最小值,比如数组长度为13,那么就把它长度扩充到f原创 2017-03-03 00:20:41 · 2217 阅读 · 2 评论 -
最短路径算法之Floyd
Floyd算法是一个求解加权连通图中两点之间最短距离的算法,是个很值得品味的算法。 如上图所示,这是一个无向加权连通图,不相连的点用虚线连接,其权值为∞。我们希望得到A->E的最小距离,根据目测能得到正确结果4(ABCDE走一圈)。我们把连通图转为邻接矩阵,因为是无向图,所以该图沿对角线对称(如果是有向图则非对称)Floyd算法所做的就是不断优化该邻接矩阵的路径权值原创 2017-02-15 15:38:26 · 594 阅读 · 0 评论