算法 -- 23




1 2 3

200x200


概述哈希表又称散列表,在一些合理假设下,对任意元素的检索、插入时间复杂度的期望时间都是 O(1),因此他非常适合频繁读取、插入、删除元素的应用场景而 nginx 作为一个

#技术帖    #linux    #web    #算法   

200x200


概述B树是为磁盘或其他直接辅助互存储设备而设计的一种平衡查找树,可以有效降低磁盘IO操作次数B树的分支因子可能很大,即一个节点可能有几个甚至几千个子女,因此B树的高度就会很小下图给出一个简单的B树,如

#读书笔记    #技术帖    #算法    #算法导论   

200x200


概述单链表是一个较为简单的数据结构,对插入、删除节点具有较高的灵活性nginx 对该数据结构进行了一层封装 单链表结构// typedef struct ngx_list_t //

#技术帖    #linux    #unix    #算法   
概述数组是 C 语言中最常用的数据类型之一,它使用整块内存,按固定大小分割,所以很容易定位到指定序号的元素,因此,在所有容器中,数组的随机访问速度是最快的但是 C 语言的数组是不能动态扩展的,所以 nginx 对他进行了一个封装,成为了类似于 C++ STL 中 vector 的数据类型具有以下优点:访问速度快元素个数不确定,并可以动态扩充内存池统一管理内存 nginx 动态数组相关的声明和定义分别在:ngx_array.h 和 ngx_array.c 两个文件中 动态数组结构 -- ngx_array_t// struct ngx_array_t // nginx 数组结构 {{{ typedef struct { void *elts; // 数组起始位置 ngx_uint_t nelts; // 数组元素个数 size_t size; // 单个元素大小 ngx_uint_t nalloc; // 空间能够容纳元素个数 ngx_pool_t *pool; // 内存池 } ngx_array_t; // }
#技术帖    #算法    #c++    #cpp   

200x200


概述nginx 实现了六个基本容器,分别是:循环双向链表 -- ngx_queue_t动态数组 -- ngx_array_t单向链表 --&

#技术帖    #算法    #数据结构    #struct   

200x200


简介我们知道,对于一棵高度为h的二叉查找树上的各种基本操作而言,其时间复杂度都是O(h)的,因此,怎样减小树的高度成为了降低时间复杂度的必要手段,因此,我们需要去找寻一种新的数据结构,让构造的二叉查找

#技术帖    #算法    #c++    #cpp   

200x200


〇、简介与斐波那契堆一样,是一种被称为可合并堆的数据结构如我们之前了解的,二叉堆在堆排序中的性能就很好:堆排序 但是,我们有的时候需要将两个二叉堆进行合并,这时的性能就不能让人满意了 一、二

#读书笔记    #技术帖    #算法    #算法导论   

200x200


插入排序是最简单排序算法之一,其过程非常类似于玩扑克牌时排列扑克牌的过程  /* * file: main.c * author: 龙泉居士 * date: 2012-12-22

#读书笔记    #技术帖    #算法    #算法导论   

200x200


概述二项堆可以以 O(lgn) 的最坏时间复杂度完成 INSERT、MINIMUM、EXTRACT-MIN 和 UNION、DECREASE-KEY、

#读书笔记    #技术帖    #linux    #算法   

200x200


问题描述赫夫曼编码是一种应用广泛并且非常有效的压缩技术,一般可以压缩掉20%到90%赫夫曼编码使用一张字符出现频度表,记录每个字符出现的频度,根据每个字符出现的频度来进行不定长编码,即对于出现频度大的

#读书笔记    #技术帖    #算法    #算法导论   
1 2 3



京ICP备15018585号