常用算法与数据结构
程序引力
这个作者很懒,什么都没留下…
展开
-
排序算法总结
常见排序算法直接插入希尔排序冒泡排序快速排序简单选择堆排序归并排序基数排序由于计数排序可能需要占用非常大的内存,故基数排序是计数排序的内存优化版,即分别对每一位进行“计数排序”,注意处于同一“数位”的若干数,需要依次进入数位的队列,出列是服从先进先出的策略。计数排序:当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算原创 2016-09-08 09:28:35 · 364 阅读 · 0 评论 -
图
图的存储邻接矩阵方阵,第1行第2列表示顶点1对顶点2有边。邻接表每一个链表只表示与该顶点相连的顶点。十字链表用于有向图,分为弧结点和顶点结点 弧结点内容分别为:尾结点 | 头结点 | 指向弧头相同的弧结点 | 指向弧尾相同的弧结点 顶点结点内容为: 数据 | 指向以该顶点为弧头的第一个弧结点 | 指向以该顶点为弧尾的第一个弧结点邻接多重表用于无向图, 弧结点:该弧连接的顶点x | 指向下一条依原创 2016-09-08 09:28:08 · 425 阅读 · 0 评论 -
动态规划
动态规划总结如果一个问题的一次选择策略跟上一次选择策略有关,那这个问题可能是动态规划问题,这个策略造成的结果称为状态。动态规划解决的问题是:一个阶段的最优可以由前一个阶段的最优得到。注意,这里有一个容易混淆的地方,一个阶段的最优可以有前一个阶段的最优得到,而不是由前面所有阶段的最优得到。一般较常见的动态规划问题需要给出一个策略,其相应的条件都是数值型。问题的目标是要求一个价值最大或最小,这个价原创 2016-09-08 09:27:35 · 576 阅读 · 0 评论 -
数据结构
数据结构对数据结构进行了简单的总结,重点在于强调需要记忆的部分数据结构线性结构一般线性表顺序表链表受限线性表栈顺序栈链栈队列顺序非循环队列顺序循环队列链式队列非线性结构集合树性质树的性质二叉树的性质各类二叉树满二叉树完全二叉树平衡二叉树二叉排序查找树遍历树的遍历二叉树的遍历递归遍历先序遍历中序遍历后序遍历非递归遍历中序遍历层次遍历特原创 2016-09-08 08:56:56 · 484 阅读 · 0 评论 -
二叉树的遍历
二叉树的遍历递归遍历递归遍历算法比较简单递归前序遍历递归中序遍历递归后序遍历非递归遍历非递归前序遍历方法一: static void preorderBinaryTree(TreeNode root){ TreeNode p=root; Stack<TreeNode> s=new Stack<TreeNode>(); //前序遍历二叉树原创 2016-09-17 13:12:25 · 517 阅读 · 0 评论