[刷题]算法[1.15]

本文探讨了哈希技术在处理散列冲突时的线性探测策略,以及不同查找算法如折半查找、哈希查找的特点。同时,介绍了多种排序算法的时间复杂度、空间复杂度和稳定性。
摘要由CSDN通过智能技术生成

哈希:

  1. 采用线性探测法处理散列时的冲突,当从哈希表删除一个记录时,不应将这个记录的所在位置置空,而是加一个删除标记
  2. 散列表的平均查找长度依赖于散列表的装填因子a,a=数据数/表长
  3. Hash适合内存中的查找

查找:

  1. 折半查找的本质为二叉排序树,即左子树上<=根节点<=右子树,将折半查找序列第一个元素设置为根,依次排列进树进行判断是否满足二叉排序树;查找不成功的次数不超过树的深度,即[log2n]+1,[]向下取整

排序:

  1. 插入排序是从后向前比较

递归:

复杂度:

排序算法

平均时间复杂度

最好情况

最坏情况

空间复杂度

稳定性

冒泡排序

O(n2)

O(n)

O(n2)

O(1)

稳定

选择排序

O(n2)

O(n2)

O(n2)

O(1)

不稳定

插入排序

O(n2)

O(n)

O(n2)

O(1)

稳定

希尔排序

O(nlogn)

O(nlog2n)

O(nlog2n)

O(1)

不稳定

归并排序

O(nlogn)

O(nlogn)

O(nlogn)

O(n)

稳定

快速排序

O(nlogn)

O(nlogn)

O(n2)

O(logn)

不稳定

堆排序

O(nlogn)

O(nlogn)

O(nlogn)

O(1)

不稳定

计数排序

O(n+k)

O(n+k)

O(n+k)

O(k)

稳定

桶排序

O(n+k)

O(n+k)

O(n2)

O(n+k)

稳定

基数排序

O(n*k)

O(n*k)

O(n*k)

O(n+k)

稳定

查找算法

时间复杂度

顺序查找

O(N)

分块查找

O(logN+N/m);

折半查找

O(logN)

哈希查找

O(1)

平衡二叉查找树AVL查找

logN

红黑树r-b tree查找

logN

DFS/BFS邻接表图

O(n+e)

DFS/BFS邻接矩阵图

O(n*n)

KMP 算法

O(N+M)

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值