![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
cake_liu
这个作者很懒,什么都没留下…
展开
-
快速排序(2个版本)
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序,是对冒泡排序的改进。平均情况下快速排序的时间复杂度为O(nlogn),虽然最坏情况时会达到O(n2),但在大多数情况下,快速排序要比其它O(nlogn)算法要快,被认为是目前最优秀的内部排序算法。快速排序是不稳定的。它采用分治法(Divide and Conquer)的策略,把一个串行(list)分为两个子串行(sub-lists...2011-09-29 21:14:03 · 117 阅读 · 0 评论 -
一道简单的面试题
1.问题描述有如下规律的数字串:① 1② 11 ①中有1个1③ 21 ②中有2个1④ 1211 ③中有1个2,1个1⑤ 111221 ④中有1个1,1个2,2个1⑥ 312211 ⑤中有3个1,2个2,1个1⑦ 13112221⑧ 1113213211 …假设任一数字...2011-09-30 14:13:46 · 100 阅读 · 0 评论 -
堆排序(Heap Sort)
堆积排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法。堆积树是一个近似完全二叉树的结构,并同时满足堆积属性:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序的平均时间复杂度为O(nlogn),空间复杂度为O(1)。堆排序是不稳定的。 1.小根堆和大根堆堆有小根堆和大根堆两种,如下图所示: 2.堆的存储堆积树是一个近似完全二叉树的结构,通...2011-10-02 22:24:06 · 123 阅读 · 0 评论 -
散列表(Hash table)
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。一、基本概念l散列函数(Hash function):若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个...2011-10-04 19:53:29 · 114 阅读 · 0 评论 -
霍夫曼树(Huffman tree)
1.基本概念霍夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的带权路径长度:设一棵二叉树有 n 个叶子结点,每个叶子结点拥有一个权值W 1 ,W 2 , ...... W n ,从根结点到每个叶子结点的路径长度分别为 L1 , L...2011-10-05 14:47:12 · 233 阅读 · 0 评论