当前位置: 首页 > news >正文

算法导论思考题

2-1 在归并排序中对小数组采用插入排序
c. 假定修改后的算法的最坏情况运行时间为 Θ \Theta Θ(nk+nlg(n/k)),要使修改后的算法与标准的归并排序具有相同的运行时间,作为n的一个函数,借助 Θ \Theta Θ记号,k的最大值是什么?
假定k= Θ \Theta Θ(lg n), Θ ( n k + n l g ( n / k ) ) = Θ ( n k + n lg ⁡ n − n lg ⁡ k ) = Θ ( n lg ⁡ n + n lg ⁡ n − n lg ⁡ ( lg ⁡ n ) ) = Θ ( 2 n lg ⁡ n − n lg ⁡ ( lg ⁡ n ) ) \begin{aligned}\Theta(nk+nlg(n/k))&=\Theta(nk+n\lg n-n\lg k)\\ &=\Theta(n\lg n+n\lg n-n\lg (\lg n))\\ &=\Theta(2n\lg n-n\lg (\lg n)) \end{aligned} Θ(nk+nlg(n/k))=Θ(nk+nlgnnlgk)=Θ(nlgn+nlgnnlg(lgn))=Θ(2nlgnnlg(lgn))
当n趋近于无穷大时,lg n的增长速度远快于lg(lg n),所以后者可忽略,上式写为 Θ \Theta Θ(nlg n)
2-2
BUBBLESORT(A)
1 for i=1 to A.len-1
2 \quad for j=A.len downto i+1
3 \qquad if A[j]<A[j-1]
4 \qquad\quad exchange A[j] with A[j-1]
b. 为2~4行的for循环精确地说明一个循环不变式
在每次迭代开始时,子序列A[j…n]可能以不同的顺序由原来A[j…n]的元素组成,并且A[j]是其中最小的

http://www.dtcms.com/a/145674.html

相关文章:

  • (二)mac中Grafana监控Linux上的MySQL(Mysqld_exporter)
  • 人机共跑,马拉松人型机器人同跑
  • 通信信号分类识别
  • ARM裸机开发——I.MX6U_汇编LED灯驱动
  • 数据分析师-Part1-职业介绍
  • java:单链表基础操作:插入、删除、移动节点
  • day1 python训练营
  • 箱线图(盒须图)QCPStatiBox
  • Redis进阶学习
  • [Windows] 星光桌面精灵 V0.5
  • *数字信号基础
  • 如何使用人工智能大模型,免费快速写工作总结?
  • 有限差分法求解线性常微分方程及python实现
  • Qt基础005(文件操作后续)
  • C++类成员函数 重写、覆盖与隐藏
  • 头歌java课程实验(函数式接口及lambda表达式)
  • 七段码 路径压缩 并查集 dfs
  • Datawhale AI春训营 TASK2 学习笔记
  • 用P0口控制LED(STC89C52单片机)
  • QEMU源码全解析 —— 块设备虚拟化(20)
  • 硬件电路(25)-过温保护器件ksd9700温控开关
  • 图例QCPLegend
  • 深入理解基线检查:网络安全的基石
  • 基于 JavaWeb 的 SpringBoot 办公 ERP 管理系统设计与实现(源码+文档+部署讲解)
  • 从浏览器地址栏输入 URL 到网页显示,这中间发生了什么?
  • [matlab]子图排版和线性回归
  • MySQL8启动失败 NET HELPMSG 3534
  • 016-C语言内存函数
  • 【HarmonyOS 5】VisionKit人脸活体检测详解
  • 【特殊场景应对3】创意岗简历骚操作:作品集链接的正确打开方式