oneNote的算法笔记 格式很差 请谅解

牛客网算法初级第四期 笔记1 算法 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

O这个是欧 不是零

只要高阶项不要低阶项.. 下面理解:

就是由等差数列转换而来

就是这里 这个就是常数操作表达式 不要低阶项 只要高阶项 并且忽略掉高阶项的系数 我们这里只需要n2 所以时间复杂度是o(n2)

书上是利用极限的思想 我们这里是更快的明白

牛客网算法初级第四期 笔记1 算法 第2张

   

   

牛客网算法初级第四期 笔记1 算法 第3张

流程1方法的 时间复杂度是big O(M*N) 需要遍历M*N次

二分查找的 时间复杂度是 log2(N)的时间复杂度

牛客网算法初级第四期 笔记1 算法 第4张

   

流程2方法 的时间复杂度就是O(M*logN) 注意A是有序的

牛客网算法初级第四期 笔记1 算法 第5张

   

流程3 注意是不在A中出现的 先不考虑排序代价

外排 就是这两个a和b a和b进行比较 当二者哪个更小的时候 移动到下一位 继续比较 当两边其中一个移动到末尾的时候 结束

牛客网算法初级第四期 笔记1 算法 第6张

就是当b<=a的情况(b才会移动,而且还要判断b=a这个不打印,b<a才打印) 除了这两种情况 都是a在移动 所以叫做外排 后面会在归并排序中讲

牛客网算法初级第四期 笔记1 算法 第7张

时间复杂度: 这两个加起来

这里的O(N+M) 因为A和B都要进行移动 所以复杂度是N+M

牛客网算法初级第四期 笔记1 算法 第8张

   

牛客网算法初级第四期 笔记1 算法 第9张

 

   

   

   

牛客网算法初级第四期 笔记1 算法 第10张

如果0位置的数比1位置上的数大 那么就交换 下一步看1位置和2位置的数 依此类推 前一个数如果比后一个数大的话 就进行交换 这样做完一圈最大的数来到最后的位置 那么现在就排好了一个数 我们就可以减少一个数进行排序了

牛客网算法初级第四期 笔记1 算法 第11张

   

牛客网算法初级第四期 笔记1 算法 第12张

就是我们一开始说的那个 就是0-n-1 找一个最小的放到0位置上 然后1-N-1找一个最小的放到1的位置 这个就是选择排序

这里的i就是我们开头的位置

牛客网算法初级第四期 笔记1 算法 第13张

上面的两种排序 在工程上几乎都见不到了 只是方便我们理解时间复杂度

插入排序很有用

牛客网算法初级第四期 笔记1 算法 第14张

   

牛客网算法初级第四期 笔记1 算法 第15张

   

牛客网算法初级第四期 笔记1 算法 第16张

0-0 是可以不用排的 0-1进行排 小的放左边,然后0-2之间的数进行比较 2位置上的数 先和1位置的数比较如果小就交换 0和1 继续比较

就相当于 手上有一副已经排好的牌 需要再拿一张新的牌 挨个进行比较 插进去

牛客网算法初级第四期 笔记1 算法 第17张

swap这里其实就是这个 交换两个数

牛客网算法初级第四期 笔记1 算法 第18张

这里的情况 就要用到最好情况 最坏情况 还有平均情况 需要看具体的数据状况 我们一般用最差情况 来估计时间复杂度

牛客网算法初级第四期 笔记1 算法 第19张

   

对数器很重要

如果写出了一个排序 怎么来验证她对不对 还可以用在贪心策略 验证这个贪心策略对不对

牛客网算法初级第四期 笔记1 算法 第20张

需要实现一个随机样本的产生器 生成一个数组 长度和值都是随机的

牛客网算法初级第四期 笔记1 算法 第21张

再准备一个绝对正确的方法 时间复杂度高的算法容易写 我们这里验证的是时间复杂度低的算法

牛客网算法初级第四期 笔记1 算法 第22张

然后再大样本测试

牛客网算法初级第四期 笔记1 算法 第23张

参加比赛的时候或者笔试的时候 应该准备对数器模板 二叉树的 数组的 可以验证哪一个出错了

还有堆 排序等等这些都需要准备模板

   

1小时30分左右

牛客网算法初级第四期 笔记1 算法 第24张

一个简单的利用递归 查找数组中的最大值

牛客网算法初级第四期 笔记1 算法 第25张

递归函数就是系统帮我们压栈 函数是如何自己调用自己的 栈里记录方法的参数和方法里面的变量还有执行到哪一步 以及相应的所有信息都会压入栈中 相当于被归档 然后再跑子过程

牛客网算法初级第四期 笔记1 算法 第26张

任何递归行为都可以改为非递归 就是从递归变成迭代了

   

   

如何分析复杂度: 这是一个高深的话题 这里我们讲一个通例

样本量为N的情况下 时间复杂度为 T代表Time

牛客网算法初级第四期 笔记1 算法 第27张

   

牛客网算法初级第四期 笔记1 算法 第28张

只要满足这个公式 的复杂度就是为

牛客网算法初级第四期 笔记1 算法 第29张

所以这里的复杂度是 O(N)

牛客网算法初级第四期 笔记1 算法 第30张

   

2:03开始

牛客网算法初级第四期 笔记1 算法 第31张

这个就用到了master公式的求解 归并排序就是先左侧部分排好序 再右侧部分排好序 然后整体利用外排的方式排好 当左右两侧排好序后 准备一个辅助数组

谁小 谁就往这个辅助数组里面填充

牛客网算法初级第四期 笔记1 算法 第32张

当整体有序了 再拷贝回原数组

牛客网算法初级第四期 笔记1 算法 第33张

   

牛客网算法初级第四期 笔记1 算法 第34张

代码:

牛客网算法初级第四期 笔记1 算法 第35张

   

牛客网算法初级第四期 笔记1 算法 第36张

   

牛客网算法初级第四期 笔记1 算法 第37张

   

牛客网算法初级第四期 笔记1 算法 第38张

   

   

牛客网算法初级第四期 笔记1 算法 第39张

 

面试中特别常见的题型 小和问题和逆序对问题

小和问题 可以使用归并排序 先拆分成左右 两边 分治的思想

牛客网算法初级第四期 笔记1 算法 第40张

代码讲解:2:40 这里代码的意思是 左侧部分产生的小和 + 右侧部分产生的小和 +整体产生的小和

牛客网算法初级第四期 笔记1 算法 第41张

   

防止溢出 如果溢出的话 算出的下标是有可能是不对的 因为L+R可能会溢出 上面的写法不安全

牛客网算法初级第四期 笔记1 算法 第42张

位运算比算术运算快很多

牛客网算法初级第四期 笔记1 算法 第43张

   

   

   

   

   

   

   

   

   

   

   

   

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄