算法期末总结题

快排

思想:分治的核心就是找到一个问题,这个问题的子问题和这个问题本身要用一样的解法,但是问题的规模不一样。 快排的核心就是将数组分成左右子数组,怎么分呢? 找出一个pivot(一般是这一次排序的首元素)将以下逻辑写成一个方法partition,将小于等于pivot的数都放到左边,将大于等于pivot的数都放到右边,然后将pivot放到中间。 接着对左手数组重复这个过程,整体就有序了。 提问为什么会有序呢? 因为在一次排列的过程中pivot找到了自己的位置,经过有限次的再分,一定会让快排处理的对象只有一个元素,那这一个元素本身就是有序的,返回。那么整体就是有序的了。

代码:

时间复杂度分析:

最好,平均,o(nlogn)排序树 层数(logn)

最坏o(n^2) 因为最坏的树高是(n)

选第二大(选第k大)

参考快排的思想 mid就是当前找到的下标,如果当前下标不是就在左区间搜索(返回左区间的搜索值)反之搜索有区间。 第k大就是搜索的下标不同。

汉诺塔

思想:假设有A,B,C三个柱,src(起始柱),aux(辅助柱),dst(目标柱)。

如果有一个盘子,只需要从src移动到dst。 如果有2个那就将上面的一个放到aux,最后一个放到dst,接将aux的放到dst。

结合两个盘子的思想,我们只需要将A柱的前n-1盘子当做一个一个盘子。 那么整体就只有两个盘子。那么我们整体的逻辑就是:

如果只有1个盘子直接执行从src移动到dst

1.将n-1个盘子从src移动到aux,辅助柱是dst

2.将src最后的一个移动到dst

3.将n-1个盘子从aux移动到dst,通过src

背包问题

dpij 的值为:从0-i号物品任选,背包容量为j的情况下可获得的最大价值。

最长公共子序列(字符从1开始)

前几个,下标不就是i-1,j-1

最大子段和

dp0 = nums0 然后从1开始遍历

相关推荐
weixin_413063211 分钟前
复现 MatchED 边缘检测模型(单张图片重复8次,训练200 epoch)
python·算法·计算机视觉·边缘检测模型
2601_962440844 分钟前
计算机毕业设计之jsp教室管理系统
java·开发语言·笔记·分布式·算法·课程设计·推荐算法
AI视频剪辑官7 分钟前
播客切片工具选型核心评价维度
网络·人工智能·算法
复杂网络3 小时前
AI 不睡觉,但它比你更会做实验
算法
贵慜_Derek3 小时前
MAI-04|干净数据在工程上意味着什么:MAI 预训练数据治理
人工智能·算法·llm
vibecoding日记21 小时前
双非如何快速入职字节等大厂大模型?真实案例分析:推理优化和投机解码
算法·求职·大模型工程师
yszaygr21381 天前
Verilog参数化游程编码RLE模块
算法
望易1 天前
刚设计的大模型架构-双域耦合认知框架
算法·架构