数据结构
梦回花果山
这个作者很懒,什么都没留下…
展开
-
哈希表
先来看一个TopK题目: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。 假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。),请你统计最热门的10个查询串,要求使用的内存不能超过1G。 如何解答?Topk之前已经说过,寻找转载 2016-03-09 19:05:58 · 705 阅读 · 0 评论 -
图的遍历
.图的存储结构图的存储结构除了要存储图中各个顶点的本身的信息外,同时还要存储顶点与顶点之间的所有关系(边的信息),因此,图的结构比较复杂,很难以数据元素在存储区中的物理位置来表示元素之间的关系,但也正是由于其任意的特性,故物理表示方法很多。常用的图的存储结构有邻接矩阵、邻接表、十字链表和邻接多重表。8.2.1 邻接矩阵表示法对于一个具有n个顶点的图,可以使用n*n的矩阵(二维数组)来转载 2016-06-29 20:56:00 · 2776 阅读 · 0 评论 -
排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,转载 2016-06-29 23:28:49 · 214 阅读 · 0 评论 -
栈
基本的抽象数据类型(ADT)是编写C程序必要的过程,这类ADT有链表、堆栈、队列和树等,本文主要讲解下堆栈的几种实现方法以及他们的优缺点。 堆栈(stack)的显著特点是后进先出(Last-In First-Out, LIFO),其实现的方法有三种可选方案:静态数组、动态分配的数组、动态分配的链式结构。 静态数组:特点是要求结构的长度固定,而且长度在编译时候就得确定。其优点是结转载 2016-06-29 23:38:56 · 274 阅读 · 0 评论 -
队列
1 /** 2 * @brief C语言顺序结构队列的实现 3 * @author wid 4 * @date 2013-10-30 5 * 6 * @note 若代码存在 bug 或程序缺陷, 请留言反馈, 谢谢! 7 */ 8 9 #include 10 #include 11 12 #define TRUE 1 13 #define FALSE转载 2016-06-29 23:40:32 · 264 阅读 · 0 评论