算法分析第三次

1.1 ???

在这里插入图片描述
这个maybe可以从基于比较的排序算法,最好的,最坏时间复杂度

1.2

在这里插入图片描述
O(n^2):划分不平衡 T ( n ) = T ( n − 1 ) + T ( 0 ) + θ ( n ) T(n)=T(n-1)+T(0)+\theta(n) T(n)=T(n1)+T(0)+θ(n)

1.3

在这里插入图片描述
有序:划分完全不平衡: T ( n ) = T ( n − 1 ) + T ( 0 ) + θ ( n ) T(n)=T(n-1)+T(0)+\theta(n) T(n)=T(n1)+T(0)+θ(n)

2.2????!!!

在这里插入图片描述
快速排序的左右指针法,划分有三种实现:挖坑、左右指针、前后指针(教材所用)。
这里考察的就是左右指针,指针不停止移动指的是,交换(右指针先移动,遇到小于其的元素就停止移动,然后再移动左指针,左指针遇到大于其的元素就停止移动,这个时候就交换左右指针的元素;然后再从右指针开始移动,重复上述的过程。那么这里停止的意思,就是左右指针遇到其等于的元素也停止,这个时候就会发生交换)。
那么这样排序出来的元素,两指针就会在中间汇合,划分出来的区间基本是n/2。
https://blog.csdn.net/qq_37941471/article/details/80522354

2.3 !!

在这里插入图片描述
当三个元素定了的时候,是C答案,但是还有A33的排列组合
E

2.5 !!!

在这里插入图片描述
A
用数学方法计算期望,你会发现就是1:1;
设 X=比基准值小的数的个数
E X = ∑ k = 1 n p k X k = ∑ k = 1 n 1 n ( k − 1 ) = n 2 EX= \sum_{k=1}^n p_{k}X_{k} = \sum_{k=1}^n \frac{1}{n}(k-1) = \frac{n}{2} EX=k=1npkXk=k=1nn1(k1)=2n
但是与那个长度为长:短,算出来是1:3的计算,是真的不一样
Y = 较短数组的长度
E Y = ∑ i = 1 n p i ∗ X i = 1 n ∑ i = 1 n X i = 2 n ∑ i = 1 2 / n X i   ( 后 半 部 分 与 前 面 对 称 ) = n 4 EY = \sum_{i=1}^n p_{i}*X_{i} = \frac{1}{n}\sum_{i=1}^n X_{i} = \frac{2}{n}\sum_{i=1}^{2/n} X_{i} \ (后半部分与前面对称) = \frac{n}{4} EY=i=1npiXi=n1i=1nXi=n2i=12/nXi ()=4n
故为 n 4 : 3 n 4 \frac{n}{4}:\frac{3n}{4} 4n:43n

牟老师还逼逼了一堆直接可以看出来的方法
第七章快排的ppt还有几个算的知识点,一个三数取中,还有一个还是两个90%以上的时间的比例

2.6

在这里插入图片描述
则基准值应该在n/4~3n/4的范围内,则占n的1/2.

3.1 熟悉并且可以记忆

在这里插入图片描述
BCE

**错误点:**认为末尾O只能推出答案O,谁知道可以推出 \omega
另外,这道题如果要用substitution的方法去做的话,就硬展开就行,动用数学知识,虽然展开有点复杂,但是可以做到的(下面那个nlog^n的平方更为复杂,展开==)

着重说一下 \omega : T(n) = T(n/4)+T(3n/4) —> 去掉后面那个O(n)—可以推出刚好是 θ ( n ) \theta(n) θ(n) 则可以推出一定比n大

3.2 熟悉并且可以记忆

在这里插入图片描述
BCE

考虑熟悉一下这种形式
这个就是很复杂的展开,会用到完全平方公式,但是也会发现展开的时候有规律。当你试到 θ ( n l o g 2 ( n ) ) \theta(nlog^{2}(n)) θ(nlog2(n))就会发现大于等于、小于等于都是可以的,BE就自动成立了。

----另外说一下,当n无穷大的时候 log(n)<n^0.5 <log(n)^2

3.3 3.4 3.5???几种排序是要掌握的

在这里插入图片描述
BCF
DG

在这里插入图片描述

选择:theta(n^2)
冒泡:theta(n)??? 这个要看一下,有点怪异,这个可以看算法笔记 这个是因为这里用的是聪明的冒泡排序,终止条件:一次循环下来没有进行元素的交换,因而是只循环了第一次。
插入:thata(n)
合并: theta(nlog(n)) ???这个也要看一下,是前几章的ppt
快速:theta(n^2)
堆:???不知道
希尔:???不知道

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值