数据结构
xingchenhy
这个作者很懒,什么都没留下…
展开
-
最短路径算法
1、Floyd算法:求多源、无负权值的最短路,时效性差,o(V^3)Floyd-Warshall算法(Floyd-Warshall algorithm)是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包。Floyd-Warshall算法的时间复杂度为O(N3),空间复杂度为O(N2)。1)算法思想原理:从任意节点i到任意节原创 2017-04-13 21:40:45 · 311 阅读 · 0 评论 -
剑指offer题23
package jianzhioffer;import java.util.ArrayList;import java.util.Scanner;/** * 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。 * 路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 * *//**节点类public class TreeNode {原创 2017-07-20 18:17:42 · 213 阅读 · 0 评论 -
剑指offer题24
package jianzhioffer;/**复杂链表的复制: * 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点), * 返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) * */class RandomListNode { int label;原创 2017-07-21 14:03:56 · 206 阅读 · 0 评论 -
剑指offer题19
package jianzhioffer;import java.util.ArrayList;import java.util.Stack;/** * 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。即:实现一个栈,能够得到栈最小元素的min函数,要求复杂度为O(1) * */public class Solution19 { /*原创 2017-07-18 16:38:20 · 179 阅读 · 0 评论 -
剑指offer题64
package jianzhioffer;import java.util.Collections;import java.util.Comparator;import java.util.LinkedList;import java.util.PriorityQueue;import java.util.Scanner;/** * 如何得到一个数据流中的中位数?如果从数据流中读原创 2017-07-31 16:28:54 · 320 阅读 · 0 评论 -
剑指offer题63
package jianzhioffer;import java.util.ArrayList;import java.util.Scanner;import jianzhioffer.BinaryTree;/** * 给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。 * *//*原创 2017-07-31 17:38:34 · 238 阅读 · 0 评论 -
剑指offer题66
package jianzhioffer;import java.util.Scanner;/** * 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。 * 路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。 * 如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 * * 例如 a b c e s转载 2017-07-24 18:08:39 · 252 阅读 · 0 评论 -
剑指offer题65
package jianzhioffer;import java.util.ArrayList;import java.util.Scanner;/** * 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。 * 例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口, * 他们的最大值分别为{4,4,6,6,6,5}; *原创 2017-07-27 19:50:01 · 287 阅读 · 0 评论 -
剑指offer题62
package jianzhioffer;import java.util.Scanner;import jianzhioffer.BinaryTree;/** * 请实现两个函数,分别用来序列化和反序列化二叉树 * 所谓序列化指的是遍历二叉树为字符串;所谓反序列化指的是依据字符串重新构造成二叉树。 *//* //树节点public class TreeNode { i原创 2017-08-07 10:38:07 · 240 阅读 · 0 评论 -
计算机基础知识总结(一)
1.在计算机中,标识计算机性能的指标有多个,但是执行时间可以普遍描述性能。2.当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。这一Moore定律揭示了信息技术进步的速度。3. MIPS单字长定点指令平均执行速度,每秒处理的百万级的机器语言指令数。这是衡量CPU速度的一个指标原创 2017-09-07 10:50:53 · 11994 阅读 · 0 评论 -
剑指offer题22
package jianzhioffer;import java.util.Scanner;/** * 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。 * 如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 * 二叉搜索树==二叉查找树==二叉排序树 * */public class Solution22 { /**递归方法:原创 2017-07-20 16:55:57 · 306 阅读 · 0 评论 -
二叉树
1、N个结点的二叉树有多种形态:(2*n)!/((n+1)!*n!)2、二叉树的遍历:前序根左右,中序左根右,后序左右根。3、深度为h的二叉树最多有2^h-1个节点。4、从根开始按层次(第0层->第1层->第2层)遍历一颗二叉树,需要辅助使用队列。5、满二叉树:除了叶节点外每一个结点都有左右子女且叶节点都处在最底层的二叉树。这个满二叉树应该很好想象,就是一颗非常完美的树原创 2017-06-27 14:35:41 · 182 阅读 · 0 评论 -
哈夫曼
哈夫曼树:带权路径长度达到最小的二叉树,也叫做最优二叉树。注意到这里,哈夫曼树只是一棵最优二叉树,不一定是完全二叉树,也不一定是平衡二叉树。完全是八竿子打不着的事情,人家哈夫曼树不关注树的结构,只关注带权路径长度。1.对于一棵有着k层的二叉树,最多有节点个数为 2^k-1,最少有k个节点2.对于第k层,最多有节点个数为 2^(k-1)个3.对于一棵非空的二叉树,叶子节点数目总比度为原创 2017-04-13 21:58:23 · 321 阅读 · 0 评论 -
8大排序算法
一、各个排序算法的过程:1、直插入排序:一个个的进行插入,直到有序序列。稳定的。 要点:设立哨兵,作为临时存储和判断数组边界之用。 具体实现代码如下: 时间复杂度:O(n^2).void InsertSort(int a[], int n) { for(int i= 1; i<n; i++){ if(a[i] < a[i-1原创 2017-04-25 17:11:09 · 303 阅读 · 0 评论 -
求字符串的子串个数
长度为n的字符串1、有n(n+1)/2 +1个子串;2、非空子串:n(n+1)/2;3、非空真子串:n(n+1)/2– 1。原创 2017-06-21 20:58:54 · 43029 阅读 · 4 评论 -
平均查找长度
平均查找长度ASL (Average Search Length)定义为: ①n是结点的个数; ②Pi是查找第i个结点的概率。若不特别声明,认为每个结点的查找概率相等,即 pl=p2…=pn=1/n ③ci是找到第i个结点所需进行的比较次数。1、 顺序查找:逐个比较,顺序/链式存储 平均查找长度:((n+1)/2 )2、 折半/二分原创 2017-06-21 21:05:01 · 2811 阅读 · 0 评论 -
字符串模式匹配
一、简单的匹配算法将主串S中某个位置i起始的子串和模式串T相比较。即从 j=0 起比较S[i+j] 与 T[j],若相等,则在主串 S 中存在以 i 为起始位置匹配成功的可能性,继续往后比较( j逐步增1 ),直至与T串中最后一个字符相等为止,否则改从S串的下一个字符起重新开始进行下一轮的"匹配",即将串T向后滑动一位,即 i 增1,而 j 退回至0,重新开始新一轮的匹配。即某一次转载 2017-04-13 21:20:25 · 240 阅读 · 0 评论 -
循环队列
大小为MAX的循环队列中1、f为当前对头元素位置,r为当前队尾元素位置(最后一个元素的位置),则任意时刻,队列中的元素个数为:(r-f+MAX+1)%MAX. 如果不是循环队列的话,那么队列中的元素显然是r-f+12、f指向队首元素的前一个位置,r指向队尾元素,(r-f+max)% max;3、f为当前对头元素位置,r为指向队尾元素的下一个位置,(r-f+Max)%Max原创 2017-06-23 20:52:50 · 3293 阅读 · 0 评论 -
指针数组和数组指针
int *a[10]; //指向int类型的指针数组a[10]int (*a)[10]; //指向有10个int类型数组的指针aint (*a)(int); //函数指针,指向有一个参数并且返回类型 均为int的函数int (*a[10])(int); //函数指针的数组,一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数可以遵循这样的规则原创 2017-06-24 22:51:00 · 221 阅读 · 0 评论 -
循环冗余校验CRC
在要传输的k比特数据D后添加(n-k)比特冗余位(又称帧检验序列,Frame Check Sequence,FCS)F形成n比特的传输帧T,再将其发送出去。CRC冗余校验:1、发送的数据比特序列; 2、生成 多项式 比特序列(5比特,K=4); X的指数就是代表第几位为1,而且1=X的 0次方 ;3、将发送数据比特序列乘以2的K,即原始序列最后多加k个0.4、将原创 2017-06-24 22:53:07 · 474 阅读 · 0 评论 -
红黑树
红黑树的操作时间跟二叉查找树的时间复杂度是一样的,执行查找、插入、删除等操作的时间复杂度为O(logn)。红黑树是特殊的AVL树(平衡二叉查找树),遵循红定理和黑定理 红定理:不能有两个相连的红节点 黑定理:根节点必须是黑节点,而且所有节点通向NULL的路径上,所经过的黑节点的个数必须相等红黑树(red black tree)是一种自平衡二叉查找原创 2017-06-27 11:03:11 · 209 阅读 · 0 评论 -
PowerDesigner 15.1 下载安装
下载 PowerDesigner 15.1 的安装文件和破解文件PowerDesigner 15.1 下载地址:http://www.downza.cn/soft/6022.html#m_xgwz破解文件下载地址:https://download.csdn.net/download/huchengwang6/4522840汉化文件下载地址:https://download.csdn.net/...原创 2018-10-16 16:16:33 · 4301 阅读 · 5 评论