- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 左神算法笔记-5 二叉树
亡羊补牢,为时不晚;时不我待,舍我其谁!! 链表遗留问题 相交与成环 成环意思是1-2-3-4-5-3-4-5-3-4-5-3……那么3就是入环节点 相交:两个链表有重合部分Y从相交的地方开始后面全都是共同部分,只能是Y不可能是X型因为单链表只有一个指针指向下一个所以不可能出现X相交 以后再分开的情况。 先判断是否成环如果有环返回入环节点: 法一:(用额外空间) 哈希表,从头遍历,检查哈希表中,表中无该节点则加入该节点,cur移动,表中出现某节点时,该节点为入环节点。 法二:(不用额外空间 快慢指针法(记
2021-11-20 12:06:38 406
原创 左神算法笔记-4 链表
我将违背我的本能,忤逆我的天性,永远爱你。 先总结一下之前讲的排序(上一节课遗留内容) 一、排序的稳定性 (02:56) 排序过程中相同的值,再经过排序算法的排序后,他们的相对次序保持不变。 (对于简单的基础类型数组中,用处不大,3和3都是3无所谓)但是按照两个指标来排序,可以得到,1到10班,每个班的同学都是按年龄排序 || 得到网站中物美价廉的商品 选择排序(不稳定) 33331333 先找1和第一个3交换第一个3就跑到后面去了 冒泡排序(可以实现稳定) 6 5 4 5 3 4 6 相邻两个数字
2021-11-18 17:25:02 464
原创 左神算法笔记-3 详解桶排序以及排序内容大总结
听了好久,晚上听可太困了 离散数学课上听了一半,算法果然很顶! 讲了快排的空间复杂度,详解堆排序,桶排序等 2021年9月28日 19点59分 1、快速排序的空间复杂度(0) 空间复杂度为O(logn) 分为最坏和最好情况: Ⅰ.最坏情况 当每次划分值都是最大的数据,此时每次都要保存划分的位置,要调用N层,每层申请一个额外空间来存储划分值使得需要的额外空间复杂度就是O(N)即每个数字都要存起来 直到最后一层开始往回返。 Ⅱ.最好情况 当每次的划分值较为合适(接近中点值)时,就能出现较好的情况,此时空间复杂度
2021-09-28 21:21:32 252
原创 左神算法笔记-2 认识O(NlogN)的排序
趁热打铁 2.认识O(NlogN)的排序 2021年9月26日 11点33分 1、 递归行为 (02:53) 求最大值为例 给定一个乱序数组,求数组的最大值 流程: ①找到最中间的数 mid ②找左边的最大值和右边的最大值并比较 ③递归调用 无懈可击的中点表示法 (04:36) 求中点mid时通常采用 int mid = ( L + R ) / 2; 这种写法可能会出现问题,即当开辟的数组很大很长时,L+R可能存在溢出的风险;所以采用以下的写法: int mid = L + ((R - L)>&g
2021-09-28 19:56:29 223
原创 左神算法笔记-1 认识复杂度和简单排序算法
1、讲解常数操作(00:00) 定义:一个操作如果和样本的数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。 说明了什么是常数操作,在时间复杂度的计算中,常数操作为计数单元,一个操作是一个单元,但并不是所有的常数操作消耗的时间都是相同的。 2、时间复杂度(4:23) ...
2021-09-10 21:45:24 293
原创 1010 一元多项式求导 (25 分) (C语言)
多项式求导 这里是第一种写法 #include<stdio.h> int main() { int a[1000]; int p[1000]; int i = 0, j = 0, k = 0; int ta,tp; for(k = 0; k < 1000; k++){ //while(scanf("%d%d",&a[i++],&p[j++])&&(getchar()!='\n')); scanf("%d %d",&am
2021-09-10 10:52:03 248
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人