摘要:赫夫曼树名字看起来很难,其实蛮简单的。我记得为大学的时候就很爱做赫夫曼树,因为很容易掌握而且做对。笑了。 一、赫夫曼树 1)给定n个权值作为n个叶子结点,构造一棵二叉树,若该树带权路径(wpl)达到最小,称这样的树为最优二叉树,也叫赫夫曼树(Huffman Tree)。 2)赫夫曼树是带权路径长度最
阅读全文
摘要:一、堆排序基本介绍 1)堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序也是一种选择排序,它的最坏、最好、平均时间复杂度都是O(nlogn),不稳定排序。 2)堆是完全二叉树(完全二叉树概念可以参考上一篇,我自己都忘记,又回头看)。大顶堆:每个结点的值都大于或者等于其左右孩子结点的值。小顶堆:
阅读全文
摘要:本篇内容:线索化二叉树,(堆排序[专门提出来放在下一篇了])、赫夫曼树 一、线索化二叉树基本介绍 n个结点的二叉链表中含有2n-(n-1)=(n+1)个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前驱和后继结点的指针(这种附加的指针称为线索) 这种加上了线索的二叉链表称为线索链
阅读全文
摘要:本篇内容:二叉树、前中后序遍历二叉树、前中后序查找、二叉树删除节点、顺序存储二叉树
阅读全文
摘要:一、哈希表基本介绍 散列表(hash table 也叫哈希表),是根据关键码值(key value)而直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问纪录,以加快查找的速度。这个映射函数叫散列函数,存放纪录的数组叫做散列表。 二、情景题及代码实现 有一个公司,当有新员工来报道时,要求
阅读全文
摘要:Java中常见的查找有四种: 顺序( 线性)查找。代码太简单不码了,就是遍历。 二分查找/折半查找。也没有难度。 插值查找。 斐波那契查找。我遇到困难了,好难理解 一、顺序查找 不多说 二、二分查找:前提是有序。 思路: 确定该数组的中间下标 mid = (left+right) / 2 让需要查找
阅读全文
摘要:其实我到希尔排序就有点不懂了。就反反复复码很多遍。最后搞得能敲出来但是清楚知道还是不懂。 但是我有良好的自信系统,我知道我不属于笨蛋,如果不懂,那就是确实需要多付出一些精力。 我期待我像小学生背乘法口诀,不知所云,但突然有一天茅塞顿开,啊原来是这么用的。 本篇内容:归并排序、基数排序 一、归并排序:
阅读全文
摘要:排序也称排序算法(Sort Algorithm)。分为内部排序和外部排序。 内部排序:将需要处理的所有数据都加载到内部存储器(内存)中进行排序。 外部排序:数据量过大,无法全部加入到内存中,需要借助外部存储(文件等)进行排序。 常见的排序算法分类:(以下五种都属于内部排序) 1.插入排序: 直接插入
阅读全文