哈希表 和 算法

1.哈希表的作用:将我们要存储的数据,通过关键字与位置的关系函数,来确定具体的位置。

2.写哈希表时常出现的问题:哈希冲突/矛盾:当多个数据满足哈希函数的映射时出现

解决的方法为:

1)开放地址法 2)链地址法:通过链表的方法,将数据经过哈希函数映射后,链接在相应的链表 后。

算法的设计'

1.正确性,1)语法正确,合法的输入能得到合理的结果。2)合法输入能得到合理的结果。 3)对非法的输入,给出满足要求的规格说明,4)对精心选择,甚至刁难的测试都能运行正常,结果正确。

2.可读性:代码的注释,使代码便于阅读理解,,高内聚,低耦合

3.健壮性:能判断异常数据,并进行相应处理

4.高效率(时间复杂度 低)

5.低存储 (空间复杂度 低)

示例:

排序算法:

1)选择排序:a.思想:将每一个元素都与其后面的元素进行比较,满足筛选条件时,交换位置,达到目的

b.代码:

c.时间复杂度:O(n^2)

d.稳定性:不稳定

2)冒泡排序:a.思想:将每个元素与其后一个元素两两相比较

b.代码:

c.时间复杂度:O(n^2)

d.稳定性:稳定

3)插入排序法

a.思想:将每个元素都与其前一个元素进行比较,当满足条件时,交换元素

b.代码:

c.时间复杂度:O(n^2)

d.稳定性:稳定

4)快速排序法:

a.思想:从首个位置或者末尾找一个 "基准点",通过从后往前或是从前往后,使比基准点小的数都在基准点的左边,比基准点大的数都在基准点右边。不断遍历,直到最后(begin >= end)

b.代码

c.时间复杂度:O(nlogn)

d.稳定性:不稳定

二分查找:1)数列必须有序 2)算法复杂度O(logn)

相关推荐
半桔37 分钟前
【STL源码剖析】二叉世界的平衡:从BST 到 AVL-tree 和 RB-tree 的插入逻辑
java·数据结构·c++·算法·set·map
塔中妖2 小时前
【华为OD】分割数组的最大差值
数据结构·算法·华为od
凯子坚持 c2 小时前
Redis 核心数据结构:String 类型深度解析与 C++ 实战
数据结构·c++·redis
songx_993 小时前
leetcode29( 有效的括号)
java·数据结构·算法·leetcode
爱编程的化学家9 小时前
代码随想录算法训练营第六天 - 哈希表2 || 454.四数相加II / 383.赎金信 / 15.三数之和 / 18.四数之和
数据结构·c++·算法·leetcode·双指针·哈希
papership14 小时前
【入门级-算法-6、排序算法: 插入排序】
数据结构·算法·排序算法
得意霄尽欢14 小时前
Redis之底层数据结构
数据结构·数据库·redis
I'm a winner14 小时前
第五章:Python 数据结构:列表、元组与字典(二)
数据结构·python
我是是是是是西红柿14 小时前
游戏中的展销系统使用的数据结构
数据结构·游戏
爱吃烤鸡翅的酸菜鱼15 小时前
【Redis】常用数据结构之Hash篇:从常用命令到使用场景详解
数据结构·数据库·redis·后端·缓存·哈希算法