随笔分类 - 算法
摘要:基本概念 哈希表(Hash Table)是一种根据关键字直接访问内存存储位置的数据结构。通过哈希表,数据元素的存放位置和数据元素的关键字之间建立起某种对应关系,建立这种对应关系的函数称为哈希函数(如图)。哈希函数构造方法 哈希表的构造方法是:假设要存储的数据元素个数为n,设置一个长度为m(m≥n)的连续存储单元,分别以每个数据元素的关键字为自变量,通过哈希函数,把映射为内存单元的某个地址,并将该数据元素存储在该内存单元中。 从数学的角度来看,哈希函数实际上是关键字到内存单元的映射,因此我们希望通过哈希函数通过尽量简单的运算使得通过哈希函数计算出的哈希地址尽量均匀地被映射到一系列的内存单元...
阅读全文
摘要:概述 平方根倒数速算法,是用于快速计算1/Sqrt(x)的值的一种算法,在这里x需取符合IEEE 754标准格式的32位正浮点数。让我们先来看这段代码: 1 float Q_rsqrt( float number ) 2 { 3 long i; 4 float x2, y; 5 const float threehalfs = 1.5F; 6 7 x2 = number * 0.5F; 8 y = number; 9 i = * ( long * ) &y; // evil floating p...
阅读全文
摘要:引言之前在一个项目中遇到了页面之间的跳转需要保留前一个页面的部分信息的问题,需要将对象转化为Base64字符串便于在页面上保存,于是决定自己实现一个。编码Base64要求把每3个8位字节转换为4个6位字节(高2位始终为0),然后依次用26个大小写字母,0-9的十个数字以及“+”和“/”一共64个字符来代替。完整的定义可以参见RFC-2045。 由于要编码的字节存在不能被3整除的情况,最后会多出1或者2个字节,这时候就需要用0来补齐,如果多出1个字节,那么则需要补2个字节,如果多出2个字 节,则需要补1个字节以用于编码,在最后编码的字符串中,补多少个字节就在最后添加多少个“=”。代码很简单了,代
阅读全文

浙公网安备 33010602011771号