传输速率的比较 快排的最好和最坏的时间复杂度比较 递归深度的问题 ackerman函数

如果把传输速率定义为单位时间内传送的信息量(以字节计算)多少。关于一下几种典型的数据传输速率:
1.使用USB2.0闪存盘,往USB闪存盘上拷贝文件的数据传输速率
2.使用100M以太网,在局域网内拷贝大文件时网络上的数据传输速率
3.使用一辆卡车拉1000块单块1TB装满数据的硬盘,以100km/h的速度从上海到天津(100km)一趟所等价的数据传输带宽
4.使用电脑播放MP3,电脑的PCI总线到声卡的数据传输速率

在通常情况下,关于这几个传输速率的排序正确的是()


普通U盘写数据的6MB/s,即48Mbps; 100M以太网的速率就是100Mbps; 卡车拉硬盘,1000x1000x8/3600=2222Mbps,这个应该是最快的; MP3在256kbps码率下也平均只有1分钟2MB,所以不会超过0.3Mbps,所以一定是最慢的。

快排最好的时间复杂度是:

O(nlogn)

快排最坏的时间复杂度是:

O(n^2)


从N个数里面比较  找最大的两个数  理论最少需要比较()次?

用堆排序考虑

首先找最大的数:需要两两比较,总共需要比较N-1次得出最大值

其次找次小的数:第二大的数肯定是跟冠军比较过的数字,那么很明显每一层都有一个,所以有logn-1次比较。


                           0
                      0          2
                   0    1    2     3

对n个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是()


每次分区后,先处理较短的部分

觉得还是要弄清递归深度和栈深度的区别吧   看了那么多回复,感觉这个题问的是递归深度(也就是自己调用自己的次数) 栈深度就是这些空间复杂度,对于栈深度,不论是先处理长序列还是先处理短序列,空间复杂度都是相同的,都是元素的总个数,但是递归深度就不同了,上面举得例子说,极端情况下,每次短序列长度均为1,那么递归深度始终是1,(优先处理短序列),如果先处理长序列,那么递归的深度就要大于1,因为长序列可能要多次递归,才能出栈,最终长序列递归完之后,还要再递归一次短序列(长序列优先),所以说,长序列优先的递归深度要大于短序列优先


一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到()个不同的码字

哈夫曼树并不是满二叉树,是正则二叉树(也叫正规二叉树),即其中只有度为0和度为2的结点
因为n0 = n2 + 1,n = n0 + n2; 所以 n = 2n0 - 1,即n0 = (n + 1) / 2;叶子结点n0对应的即是不同的编码。
至于满二叉树当然也是正则二叉树的特例。

定义:

                 { n+1;                             m=0,n>0   
  A(m,n) = { A(m-1,1);                      n=0,m>0   
                 { A(m-1,A(m,n-1))           n>0,m>0 

1,ack(1,n)=ack(0,ack(1,n-1))+1=ack(1,n-1)+1;  //递推式

  由递推式得:ack(1,n)=n+1;

  ps递推式形如 A(n) = A(n-1) + 1,求A(n)。

      用的是高中数学知识,方法是“累加法”(加起来然后消掉),是否想起来了?

2,ack(2,n)=ack(1,ack(2,n-1))=ack(2,n-1)+2;  //递推式

  由递推式得:ack(2,n)=2n+3;

  psA(n) = A(n-1) + 2,方法同 1

3,ack(3,n)=ack(2,ack(3,n-1))=2*ack(3,n-1)+3; //递推式

  即:ack(3,n)+3=2(ack(3,n-1)+3)

  得: ack(3,n)+3=(ack(3,1)+3)*2n-1;

  又ack(3,1)=2ack(3,0)+3

    ack(3,0)=a(2,1)=5

  所以ack(3,1)=13;

  所以 ack(3,n)=2n+3 - 3;

  ps递推式形如 A(n) = 2*A(n-1) + 3,求A(n)。

      方法是“拆分常数”,拆分常数3后 A(n) + 3 = 2*( A(n-1) + 3 ),

      令B(n) = A(n) + 3,即有 B(n) = 2*B(n-1),等比数列啊,B(n)=B(1)*2n-1

      求出B(1),得到B(n),即可得到A(n)。

所以:ack(3,3)=61;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lishaheshizan

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值