[刷题]算法[1.15]

哈希:

  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
    评论
在C++中,algorithm和numeric库中有几个常用的模板函数可以用于,包括swap,reverse,sort,unique和accumulate。 1. swap(): 这个函数可以交换两个变量的值。它的模板定义如下: ```cpp template <class T> void swap(T& a, T& b) { T c(a); a = b; b = c; } ``` 通过调用swap()函数,可以交换两个变量的值。 2. reverse(): 这个函数可以反转容器中元素的顺序。例如,可以使用reverse()函数反转一个vector容器中的元素。 3. sort(): 这个函数可以对容器中的元素进行排序。可以通过提供一个比较函数来指定排序的规则。比如,可以使用sort()函数对一个vector容器中的元素进行升序排序或者降序排序。 4. unique(): 这个函数可以去除容器中的重复元素,并返回指向新的逻辑尾部的迭代器。需要注意的是,在调用unique()函数之前,需要先对容器进行排序。 5. accumulate(): 这个函数可以对容器中的元素进行累加操作,并返回累加结果。accumulate()函数接受三个参数:容器的起始迭代器、容器的结束迭代器和一个初始值。可以使用accumulate()函数计算数组或者vector容器中元素的和。 以上是C++中一些常用的算法函数,可以在过程中使用它们来简化代码并提高效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C++ LeetCode常用函数](https://blog.csdn.net/qq_40876059/article/details/126245632)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值