基础篇8-算法

1.常用算法思路
转载常用算法设计思路
分治:问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。

动态规划:其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解,与分治不同,它保存已解决的子问题的答案,避免大量重复计算。

贪心算法从:问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一步都要确保能获得局部最优解。

回溯法:是暴力搜寻法中的一种。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。采用试错的思想,它尝试分步的去解决一个问题。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。

分支限界法:对有约束条件的最优化问题的所有可行解(数目有限)空间进行搜索。该算法在具体执行时,把全部可行的解空间不断分割为越来越小的子集(称为分支),并为每个子集内的解的值计算一个下界或上界(称为定界)。

2.复杂度
转载时间复杂度和空间复杂度
时间复杂度:程序中算法执行次数

空间复杂度:程序运行过程中占用的内存

3.排序
转载十大经典排序算法
冒泡排序:一换一

选择排序:选最小

插入排序:一个个排好

希尔排序:选择一个增量进行交换排序,改变增量。

归并排序:二二四二二四八,二二四二二四八,十六排序。

快速排序:选一个数为基准,小左大右

堆排序:遵守父大于子节点,排成二叉树,最后一位与第一位交换。

基数排序:从个位排大小,到十位…

4.字符串匹配
转载字符串匹配算法综述
转载Tire树
BF算法:暴力解法,一个个字符对比

RK算法:将比较字串设值,对被比较字串按对应字串长度设值,比较。

kmp算法:找与第一个字符匹配,按部分匹配表移动

BM算法:直接比较最后一个字符,比较字串中字符与被比较字串中有对应则平移对应比较,无则比较下一个等长字串。

Sunday算法:比较第一个字符,不对则再看下一个等长字符串中字符有无在比较子串中出现,有则移动比较,无则看下一个等长字符串。

5.查找
转载查找算法-二分查找
二分查找:每次从中间元素开始查找

转载搜索算法-二叉搜索树
二叉排序树:左小右大,查找时从根节点开始比较

转载经典搜索算法之B树
B树每次查找走一条从根节点到叶子节点的路径
B+树遍历叶子节点实现

转载搜索算法-哈希表
实现哈希表:
拉链法:查找通过对设置的一个值模运算,再在该余数值中寻找元素
线性探测法:查找通过模运算,再从余数的位置开始向后查找

转载算法Bloom-Filter
Bloom-Filter:通过计算多个哈希值查找对应位置是否都为1,判断是否存在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值