wordpress外贸建站主题,wordpress更换端口,网站建设及,查看网站的收录量可以用哪个查询命令哈希表
hash#xff1a;
在编程和数据结构中#xff0c;hash 通常指的是哈希函数#xff0c;它是一种算法#xff0c;用于将数据#xff08;通常是字符
串#xff09;映射到一个固定大小的数字#xff08;哈希值#xff09;。哈希函数在哈希表中尤为重要…哈希表
hash
在编程和数据结构中hash 通常指的是哈希函数它是一种算法用于将数据通常是字符
串映射到一个固定大小的数字哈希值。哈希函数在哈希表中尤为重要哈希表是一种通过哈
希函数将键映射到表中位置的数据结构以实现快速的数据插入和检索。
哈希表Hash Table
也称为散列表是一种通过哈希函数将键Key映射到表中一个位置以
便快速访问记录的数据结构。哈希表可以快速地插入和查找数据。
哈希算法
将要存储的关键字与要存储的位置建立一种联系这种联系就叫哈希函数/散列函数
哈希表的相关函数
插入数据
int insert_hashtable(HSDataType data)
{int addr hash_function(data.name[0]);HSNode_t *hanode malloc(sizeof(HSNode_t));if(NULL hanode){perror(fail malloc);return -1;}hanode-data data;hanode-pnext NULL;hanode-pnext hashtable[addr];hashtable[addr] hanode;
}
遍历哈希表
void hashtable_for_each()
{for(int i 0;i HASH_SIZE;i){HSNode_t *p hashtable[i];while(p ! NULL){printf(**%10s **%3s\n,p-data.name,p-data.tel);p p-pnext;}}printf(\n);
}
查找数据
int find_key_hashtable(HSDataType data)
{int addr hash_function(data.name[0]);HSNode_t *p hashtable[addr];while(p ! NULL){if(!strcmp(p-data.name,data.name)){printf(%s %s\n,p-data.name,p-data.tel);return 0;}p p-pnext;}return -1;
}销毁哈希表
int destory_hashtable()
{for(int i 0;i HASH_SIZE;i){HSNode_t *p NULL;while(hashtable[i] ! NULL){p hashtable[i];hashtable[i] p-pnext;free(p);}}
} 算法
算法即解决特定问题求解步骤
算法的设计
1.正确性
语法正确
合法的输入得到合理的结果
对非法的输入给出满足要求的规格说明
对精心选择甚至刁难的测试都能正常运行结果正确
2.可读性
便于交流阅读理解 高内聚低耦合
3.健壮性
输入非法内容能进行相应的处理而不是产生异常
4.高效率时间复杂度
算法时间复杂度
执行这个算法所花时间的度量
将数据量增长和时间增长用函数表示出来这个函数就叫做时间复杂度。
一般用大0表示法0(n)------时间复杂度是关于数据n的一个函数
随着n的增加时间复杂度增长较慢的算法时间复杂度低
时间复杂度的计算规则
1用常数1 取代运行时间中的所有加法常数
2在修改后的运行函数中只保留最高阶项
3如果最高阶存在且系数不是1则去除这个项相乘的常数
5.低存储空间复杂度
空间复杂度越低低存储 越高高存储
时间复杂度越低高效率 越高低效率
几种常见时间复杂度比较