[算法导论][思考题]2

算法导论思考题答案 思考题15-2 整齐打印 解决思路:  由问题描述可知道,我们需要做的就是n个单词分成若干份,这与矩阵连乘问题有相似之处。行尾的额外空格符数量M-j+i-∑lk(iM-(j-i)-∑lk,其中j-i是表示该行各个单词之间相隔的空格数量。我们设lc[i,j]是第i个单词到第j个单词的额外空格符数量的立方,即是(M-j+i-∑lk)3(i lc[i,j]=∞,当M-j+i-∑lk lc[i,j]=0,当M-j 阅读详情

2-1

(在归并排序中队小数组采用插入排序) 虽然归并排序的最坏情况运行时间为Θ(n2)\Theta(n^2)Θ(n2),但是插入排序中的常量因子可能使得它在nnn较小时,在许多机器上实际运行得更快。因此,在归并排序中当子问题变得足够小时,采用插入排序使得递归的叶变粗是有意义的。考虑对归并排序的一种修改,其中使用插入排序来排序长度为kkk的n/kn/kn/k个子表,然后使用标准的合并机制来合并这些子表,这里kkk是一个特定的值。

  1. 证明:插入排序最坏情况可以在Θ(nk)\Theta(nk)Θ(nk)时间内排序每个长度为kkk的n/kn/kn/k个子表。
  2. 表明在最坏情况下如何在Θ(nlog2(n/k))\Theta(nlog_2(n/k))Θ(nlog2​(n/k))时间内合并这些子表。
  3. 假定修改后的算法的最坏情况运行时间为Θ(nk+nlog2(n/k))\Theta(nk+nlog_2(n/k))Θ(nk+nlog2​(n/k)),要使修改后的算法与标准的归并排序有相同的运行时间,作为nnn的一个函数,借助Θ\ThetaΘ记号,kkk的最大值是多少?
  4. 在实践中,我们应该如何选择kkk?

答:

  1. 在最坏情况下,使用插入排序排序一个长度为kkk的列表的运行时间是Θ(k2)\Theta(k^2)Θ(k2)。因此,在最坏情况下,排序n/kn/kn/k个子列表(每个子列表的长度为kkk)的运行时间是Θ(k2⋅n/k)=Θ(nk)\Theta(k^2 \cdot n/k)=\Theta(nk)Θ(k2⋅n/k)=Θ(nk)。
  2. 我们有n/kn/kn/k个子列表每一个子列表的长度是kkk。为了合并这n/kn/kn/k个已排序的子列表成为一个长度为nnn的单一已排序的列表,我们必须每次合并2个子列表。如果两两为一组的子列表合并完了,就继续再两两一组。这需要花费我们log2(n/k)log_2(n/k)log2​(n/k)步,并且每一步需要比较nnn个元素。所以,在最坏情况下,合并这些子列表所花费的时间是Θ(n⋅log2(nk))\Theta(n \cdot log_2(\frac{n}{k}))Θ(n⋅log2​(kn​))。
  3. 当Θ(nk+n⋅log2(nk))=Θ(n⋅log2n)\Theta(nk+n\cdot log_2(\frac{n}{k})) = \Theta(n\cdot log_2n)Θ(nk+n⋅log2​(kn​))=Θ(n⋅log2​n)时,修改后的算法具有普通合并排序的算法复杂度。假定k=Θ(log2n)k = \Theta(log_2n)k=Θ(log2​n),
    Θ(nk+n⋅log2(nk))=Θ(nk+n⋅log2n−n⋅log2k)\Theta(nk + n\cdot log_2(\frac{n}{k})) = \Theta(nk + n\cdot log_2n - n\cdot log_2k)Θ(nk+n⋅log2​(kn​))=Θ(nk+n⋅log2​n−n⋅log2​k)
    Θ(n⋅log2n+n⋅log2n−n⋅log2(log2n))\Theta(n\cdot log_2n + n\cdot log_2n - n\cdot log_2(log_2n))Θ(n⋅log2​n+n⋅log2​n−n⋅log2​(log2​n))
    =Θ(2n⋅log2n−n⋅log2(log2n))=\Theta(2n\cdot log_2n - n\cdot log_2(log_2n))=Θ(2n⋅log2​n−n⋅log2​(log2​n))
    =Θ(n⋅log2n)=\Theta(n\cdot log_2n)=Θ(n⋅log2​n)。
  4. 将kkk选定为当插入排序比合并排序更快时,子列表的最大长度。

2-2

(冒泡排序的正确性)冒泡排序是一种流行但低效的排序算法,它的作用是反复交换相邻的未按次序排列的元素。

BUBBLESORT(A)
	for i = 1 to A.length - 1
		for j = A.length downto i + 1
			if A[j] < A[j - 1]
				exchange A[j] with A[j - 1]
  1. 假设A′A'A′表示BUBBLESORT(A)的输出。为了证明BUBBLESORT正确,我们必须证明它将终止并且有:
    A′[1]⩽A′[2]⩽A′[3]⩽⋯⩽A′[n]A'[1]\leqslant A'[2]\leqslant A'[3]\leqslant \cdots\leqslant A'[n]A′[1]⩽A′[2]⩽A′[3]⩽⋯⩽A′[n]
    其中n=A.lengthn = A.lengthn=A.length。为了证明BUBBLESORT确实完成了排序,我们还需要证明什么?
    下面两部分将证明不等式。
  2. 为第2~4行的for循环精确地说明一个循环不变式,并证明该循环不变式成立。你地证明应该使用本章给出地循环不变式证明地结构。
  3. 使用(2)部分证明的循环不变式的终止条件,为第1~4行的for循环说明一个循环不变式,该不变式将使你能证明不等式。你的证明应该使用本章给出的循环不变式证明的结构。
  4. 冒泡排序的最坏情况运行时间是多少?与插入排序的运行时间相比,其性能如何?

答:

  1. A′A'A′是由AAA中的元素组成,且是按顺序排列的。
  2. 证明过程需要完善
  3. 循环不变式为第1-4行的for循环在第iii次循环之前,A[1..i−1]A[1..i - 1]A[1..i−1]已排好序,且A[1]A[1]A[1]为数组AAA最小的元素,数组A[2]A[2]A[2]为次小的元素,等等。数组AAA剩余的元素A[i..A.length]A[i..A.length]A[i..A.length]即为未排序的元素。初始化:在第1次循环之前,iii的值是1,数组A[1..i−1]A[1..i-1]A[1..i−1]为空,因为在初始化的时候所有元素均未排序,故循环不变式成立。保持:在第iii次循环开始之前,数组A[1..i−1]A[1..i-1]A[1..i−1]中的依次从小到大排列,且是数组AAA中最小的i−1i-1i−1个元素。在第iii次循环中,数组A[i+1..A.length]A[i + 1..A.length]A[i+1..A.length]中最小的元素会逐步冒泡“上升”到数组AAA的第iii个位置。所以,当前循环结束后,第iii个位置的位置即为数组AAA中“第iii小”的元素。因此,循环不变式保持成立。终止:循环终止条件为i==A.lengthi == A.lengthi==A.length,此时A[1..i−1]A[1..i-1]A[1..i−1]中的元素即为数组AAA中的所有元素除最大的元素之外的所有元素,且已按从小到大的顺序排列,因A[A.length]A[A.length]A[A.length]就是数组AAA中的仅剩的元素,也是最大元素,所以数组AAA中的所有元素均已被排序。
  4. 冒泡排序的结果是数组AAA中的元素以从小到大的顺序排列。最坏情况是,原始情况下数组AAA以从大到小的顺序排列。这个时候,对于第2行的for循环的每次迭代,第3行的的判断均成立,故第4行的交换均执行。所以,对于第1行的for循环的iii,第4行的执行次数为A.length−iA.length - iA.length−i,假设交换数组元素所需的运行时间为c,则冒泡排序总共所需运行时间为∑1n−1c(n−i)=cn(n−1)2\sum _{1}^{n-1}c(n - i) = \frac{cn(n-1)}{2}∑1n−1​c(n−i)=2cn(n−1)​。故,冒泡排序的最坏情况运行时间是Θ(n2)\Theta(n^2)Θ(n2),与插入排序相比,所需的运行时间是一样的。

2-3

(霍纳(Horner)规则的正确性)给定系数a0,a1,⋯,ana_0,a_1,\cdots,a_na0​,a1​,⋯,an​和xxx的值,代码片段

y = 0
for i = n downto 0
	y = ai + x*y

实现了用于求职多项式
P(x)=∑k=0nakxk=a+0+x(a1+x(a2+⋯+x(an−1+xan)⋯ ))P(x) = \sum_{k = 0}^{n}a_kx^k = a+0 + x(a_1 + x(a_2 + \cdots + x(a_{n-1} + xa_n)\cdots))P(x)=k=0∑n​ak​xk=a+0+x(a1​+x(a2​+⋯+x(an−1​+xan​)⋯))
的霍纳规则。

  1. 借助Θ\ThetaΘ记号,实现霍纳规则的以上代码片段的运行时间是多少?
  2. 编写伪代码来实现朴素的多项式求值算法,该算法从头开始计算多项式的每个项。该算法的运行时间是多少?与霍纳规则相比,其性能如何?
  3. 考虑以下循环不变式:
    在第2~3行for循环每次迭代的开始有
    y=∑k=0n−(i+1)ak+i+1xky = \sum_{k = 0}^{n-(i + 1)}a_{k + i + 1}x^ky=k=0∑n−(i+1)​ak+i+1​xk
    把没有项的和式解释为等于0。准找本章中给出的循环不变式证明的结构,使用该循环不变式来证明终止时有y=∑k=0nakxky = \sum_{k = 0}^{n}a_kx^ky=∑k=0n​ak​xk。
  4. 最后证明上面给出的代码片段将正确地求由系数a0,a1,⋯,ana_0,a_1,\cdots,a_na0​,a1​,⋯,an​刻画地多项式的值。

答:

  1. 实现霍纳规则的以上代码片段的运行时间是Θ(n)\Theta(n)Θ(n)。
  2. 朴素的多项式求值算法:
sum = 0
pow = 1
for 0 downto n
	sum += ai * pow
	pow *= x

该算法的运行时间是Θ(n)\Theta(n)Θ(n)。该算法的性能霍纳规则是一样的。

  1. 第2~3行for循环不变式为每次迭代开始之前y=∑k=0n−(i+1)ak+i+1xky = \sum_{k = 0}^{n - (i + 1)}a_{k + i + 1}x^ky=∑k=0n−(i+1)​ak+i+1​xk。初始化:当第一次循环之前,和式中没有项,故y = 0。保持:在第iii次迭代之后,我们有
    y=ai+x∑k=0n−(i+1)xky = a_i + x\sum_{k = 0}^{n - (i + 1)}x^ky=ai​+xk=0∑n−(i+1)​xk
    =aix0+x∑k=0n−i−1ak+i+1xk+1 = a_ix^0 + x\sum_{k = 0}^{n - i - 1}a_{k + i + 1}x^{k + 1}=ai​x0+xk=0∑n−i−1​ak+i+1​xk+1
    =aix0+∑k=1n−iak+ixk = a_ix^0 + \sum_{k = 1}{n - i}a_{k + i}x^k=ai​x0+k=1∑​n−iak+i​xk
    =∑k=0n−iak+ixk = \sum_{k = 0}^{n - i}a_{k + i}x^k=k=0∑n−i​ak+i​xk
    终止:当i=−1i = -1i=−1时,循环结束。此时
    y=∑k=0n−i−1ak+i+1xk=∑k=0nakxky = \sum_{k = 0}^{n - i - 1}a_{k + i + 1}x^k = \sum_{k = 0}^na_kx^ky=k=0∑n−i−1​ak+i+1​xk=k=0∑n​ak​xk。

  2. 循环的不变量是一个等于一个具有给定系数的多项式的和。

2-4

(逆序对)假设A[1..n]A[1..n]A[1..n]时一个有nnn个不同数的数组。若i<ji<ji<j且A[i]>A[j]A[i]>A[j]A[i]>A[j],则对偶(i,j)(i, j)(i,j)称为AAA的一个逆序对(inversion)。

  1. 列出数组<2,3,8,6,1><2, 3, 8, 6, 1><2,3,8,6,1>的5个逆序对。
  2. 有集合1,2,⋯ ,n{1, 2, \cdots, n}1,2,⋯,n中的元素构成的什么数组具有最多的逆序对?她有多少逆序对?
  3. 插入排序的运行时间与输入数组中逆序对的数量之间是什么关系?证明你的回答。
  4. 给出一个确定在nnn个元素的任何排列中逆序对数量的算法,最坏情况需要Θ(n⋅log2n)\Theta(n\cdot log_2n)Θ(n⋅log2​n)时间。(提示:修改该归并算法。)

答:

  1. <1,5>、<2,5>、<3,4>、<3,5>、<4,5><1, 5>、<2, 5>、<3, 4>、<3, 5>、<4, 5><1,5>、<2,5>、<3,4>、<3,5>、<4,5>。
  2. 如果集合1,2,⋯ ,n{1, 2, \cdots, n}1,2,⋯,n中的元素是以降序排列的,那么组成的逆序对最多。它有n(n−1)2\frac{n(n-1)}{2}2n(n−1)​个逆序对。
  3. 如果输入数组中的逆序对数量越多,则插入排序的运行时间就越大。对于数组中的的逆序对<i,j><i, j><i,j>,在应用插入排序的时候,为了保证数组按正序排列,必定会交换逆序对<i,j><i, j><i,j>。每一个逆序对会花费时间ttt,那么在排序数组的时候,总共花费的时间就是逆序对的数目m⋅tm\cdot tm⋅t。所以,插入排序的运行时间与输入中逆序对的数量之间呈正比关系。
INVERSION-MERGE(A, p, q, r)
	result = 0
	for m = p to to q
		for n = q + 1 to r
			if A[m] < A[n]
				break
			result++
	
	n1 = q - p + 1
	n2 = r - q
	let L[1 .. n1] and R[1 .. n2] be new arrays
	for i = 1 to n1
		L[i] = A[p + i - 1]
	for j = 1 to n2
		R[j] = A[q + j]
	i = 1
	j = 1
	for k = p to r
		if L[i] <= R[j]
			A[k] = L[i]
			i = i + 1
		else
			A[k] = R[j]
			j = j + 1
	
	return result

INVERSION-SORT(A, p, r)
	result = 0
	if p < r
		q = (p + r) / 2
		result += INVERSION-SORT(A, p, q)
		result += INVERSION-SOFT(A, q + 1, r)
		result += INVERSION - MERGE(A, p, q, r)
	return result
算法导论 思考题 2-2 题目:冒泡排序算法的正确性解答:a)还需要证明什么?不等式证明了,终止条件也证明了,缺啥? 证明子数组是原数组的一部分,也就是说,A′[i]A'[i] i=1∼n i=1\sim n 可以构成原数组b)对第2~4行的for循环给出一个准确的循环不变式,并证明该循环不变式是成立的b问题就是证明每一趟的排序, 这种证明真是。。。要亲命了,证明:循环不变式:每次迭代中,A[j]=min{A[k]:j 阅读详情

相关推荐

算法导论课后题和思考题 第2章

一、课后习题 2.1-1 以图 2-2为模型,说明INSERTION-SORT 在数组 上的执行过程。 2.1-2 重写过程INSERTION-SORT,使之按非升序(而不是非降序)排序。 INSERTION-SORT(A) for j=2 to A.length key = A[j] i = j-1 while i>0 and A[i]<key A[i+1]=A[i] .

lanmingling的专栏 2097

c++十大排序算法之选择排序

c++十大排序算法之选择排序

hesphoros的个人博客 1107

归并排序最坏情况可运行jar

归并排序并不像快速排序那样最坏情况时间复杂度变成On2,归并排序最坏情况仍然是Onlgn,大家可以看看

归并排序

概念归并排序是属于分治算法。 许多有用的算法在结构上是递归的:为了解决一个给定的问题,算法一次或多次递归地调用其自身以解决机密相关的若干子 问题。这些算法典型地遵循分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题, 然后再合并这些子问题的解来建立原问题的解。 分治模式在递归时都要三个步骤: 分解原问题为若子问题,这些子问题是原问题的规模较小的实例。 解

jun2016425的博客 1848

5分钟搞定!用FunASR在本地快速部署达摩院Paraformer语音识别模型

本文提供了一份快速部署指南,教你如何在5分钟内利用FunASR工具包在本地电脑上启动达摩院Paraformer语音识别模型。Paraformer作为一款非自回归端到端模型,以其推理速度快、识别精度高的特点,结合FunASR的一键式模型加载和统一API,让开发者能轻松构建本地语音识别系统,极大降低了前沿AI技术的应用门槛。

q9w8e7r6t5的博客 605

scratch航天梦主题课程作品分享,包含ppt、素材包

而今年多国都将发射探测器尝试登陆月球,2023年或将称为“登月年”,请大家发挥创新思维,以“星辰大海”为创作主题,搜集相关信息 、展开联想,为实现升空 、探测 、取样贡献创意!即使去淘宝买的素材,也要从百度网盘,但素材太多大了或者太多文件,也要充值百度网盘超级会员才能保存,提高下载速度。同学们大家好,今天我们就要开始航天主题-嫦娥五号探月工程系列的编程课程了,不仅可以学习到很多航天知识,了解本次嫦娥五号的发射历程,还能让我们用编程遨游太空呢。即使下载了,也要上传,不是特别方便,尤其是不好查找。

少儿编程吕口口 2481

归并排序笔记

归并排序算法学习时记录的笔记。

qq_51542797的博客 525

Intel RealSense D435深度相机实战:从数据采集到点云生成的完整避坑指南

本文详细介绍了Intel RealSense D435深度相机的实战应用,从数据采集到点云生成的完整流程,并提供了避坑指南。内容包括环境配置、硬件调优、数据采集技巧、点云生成核心技术及典型场景解决方案,帮助开发者高效利用D435进行机器人导航、三维重建等应用。

weixin_29054195的博客 472

排序(五) 之归并排序

文章目录一、归并排序(Merge Sort)二、算法原理三、代码示例四、实例测试     一、归并排序(Merge Sort)   归并排序是一个相当“稳定”的算法对于其它排序算法,比如希尔排序,快速排序和堆排序而言,这些算法有所谓的最好与最坏情况。而归并排序的时间复杂度是固定的,它是怎么做到的?   二、算法原理   首先来看归并排序要解决的第一个问题:两个有序的数...

qigaohua的博客 652

基于PCIe的NVMe协议在FPGA中实现方法

NVMe协议是工作在PCIE的最上层协议层的,故需要先搞清楚PCIE。本文基于Xilinx的UltraScale+,开发工具为Vivado2021.2。NVMe的学习仍以spec为主,其它资料辅助理解,有冲突时以spec为准,必要时可对比最新版本spec。(此文重点介绍学习方法及资料,有时间再加细节)。 主要参考的文章是《老男孩读PCIe》,同时参考《古猫先生》,重点学习TLP报文部分,数据链路层和物理层的内容可以先不看。再买一本书《PCI Express 体系结构导读-王齐》用来查阅做笔记。

leixj的博客 1万+

MuJoCo新手必看:5分钟搞定你的第一个机器人仿真(附Python代码)

本文为零基础新手提供了一份详尽的MuJoCo物理仿真引擎入门指南。从环境搭建、MJCF模型文件解析,到编写Python控制代码,手把手教你5分钟内创建并运行第一个机器人仿真。内容涵盖双摆模型控制与自定义四轮小车构建,帮助你快速掌握这一高性能开源工具,迈出机器人学与强化学习仿真的第一步。

weixin_29032489的博客 655

归并排序和快速排序(partition)

一、归并排序 排序算法稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。 1、归并排序是稳定的排序算法 归并排序稳不稳定关键在于merge函数。在合并过程中,如果A[p..q]和A[q+1...

INGNIGHT的专栏 1291

手把手教你用RSoft BPM仿真一个1x2光分束器:从参数设置到结果分析全记录

本文详细介绍了使用RSoft BPM模块设计和仿真1×2光分束器的完整流程,包括参数设置、结构建模、仿真配置和结果分析。通过实战指南,帮助读者掌握光波导器件的仿真技术,实现50:50功率分配的设计目标,适用于光通信和集成光学领域的研究与应用。

weixin_30545945的博客 545

算法导论 思考题 3-2

苦海无涯闯进来 941

YOLOv11改进,YOLOv11添加DCNv4可变性卷积(windows系统成功编译),二次创新C3k2结构,全网最详细教程

引入了可变形卷积 v4 (DCNv4),这是一种为广泛视觉应用设计的高效且有效的操作算子。DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1. 移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2. 优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DCNv4相比DCNv3显著加快了收敛速度,并且处理速度大幅提升,前向传播速度超过三倍。DCNv4在多个任务中表现出色,包括图像分类、实例和语义分割,特别是在图像生成方面表现突出。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2665

【Unity终极奥义】Unity打包去掉启动画面Logo,无需破解,一学就会

大家都知道Unity打包的应用在启动的时候都会有一个默认的UnityLogo。 而且这个Logo使用升级版和破解版都是可以随意清除和更换的。 但是Unity个人版是无法通过Unity的打包设置去进行更换的。 那今天就教大家一个使用个人普通版更换Unity启动画面Logo的方法!一起来看一下吧!

努力前行,总会成为自己心中的那道光 8万+

算法导论第2章思考题

(nk+nlg(n/k)),要使修改后的算法与标准的归并排序具有相同的运行时间,作为n的一个函数,借助。当n趋近于无穷大时,lg n的增长速度远快于lg(lg n),所以后者可忽略,上式写为。c. 假定修改后的算法的最坏情况运行时间为。2-1 在归并排序中对小数组采用插入排序。记号,k的最大值是什么?

qq_46221910的博客 627

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

算法导论 思考题 2-1

题目:在合并排序中,对小数组采用插入排序解答:a)证明在最坏情况下,n/kn/k个子列表(每个子列表长度为kk)可以用插入排序在Θ(nk)\Theta(nk)时间内完成:长度为k的表插入排序是 Θ(n2)\Theta(n^2) 那么 n/kn/k 个就是 Θ(n2)∗n/k=Θ(nk)\Theta(n^2)*n/k=\Theta(nk)b)证明这些子列表可以在Θ(nlg(n/k))\Theta(nl

zslomo的博客 2628

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

算法导论 思考题9-2

9-2 (带权中位数)对分别具体以正权重w1,w2,⋯&ThinSpace;,wnw_1,w_2,\dotsb,w_nw1​,w2​,⋯,wn​,且满足∑i=1nwi=1\sum_{i=1}^{n}{w_i=1}∑i=1n​wi​=1的nnn个互异的元素x1,x2,⋯&ThinSpace;,xnx_1,x_2,\dotsb,x_nx1​,x2​,⋯,xn​来说,带权中位数xkx_k...

生命不息,代码不止 1732

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

算法导论 思考题 9-2

1

苦海无涯闯进来 1105

算法导论 思考题6-2

6-2(对d叉堆的分析)d叉堆与二叉堆很类似,但(一个可能的例外是)其中的每个非叶节点有d个孩子,而不是仅仅2个。 a. 如何在一个数组中表示一个d叉堆? 假设数组从A[1]A[1]A[1]开始,它作为根,那么A[1]A[1]A[1]有d个孩子分别是A[2]...A[d+1]A[2]...A[d+1]A[2]...A[d+1],共d个。那么对于A[2]...A[d+1]A[2]...A[d+1]A...

生命不息,代码不止 399

算法导论之2-3思考题

题目:霍纳规则的正确性: 写出伪代码以实现朴素多项式求值(native polynomial-evaluation)算法,它从头开 始计算多项式的每一个项。这个算法的运行时间是多少?与霍纳规则相比其性能如何? 我用Java代码将其实现如下:首先,写出一个计算次方值的方法/** * 计算次方值 * @param a 底数 * @param b 指数

踩风火轮的乌龟 1310

算法导论 — 思考题2-4 逆序对

(逆序对)假设A[1..n]A[1..n]A[1..n]是一个有nnn个不同数的数组。若i&lt;ji &lt; ji<j且A[i]&gt;A[j]A[i] &gt; A[j]A[i]>A[j],则对偶(i,j)(i, j)(i,j)称为A的一个逆序对(inversion)。   a. 列出数组&lt;2,3,8,6,1&gt;&...

yangtzhou的专栏 9660

算法导论 思考题2-1

在归并排序中对小数组使用插入排序。 伪码 Merge(A,low,mid,high) //low { i=low j=mid+1 k=low while(i)   if(A[i]     else           B[k]=A[j];j++;k++ while(iB[k]=A[i];i++;k++ while(jB[k]=A[j];i++;k++ return B

wujinsha的专栏 632

算法导论 思考题2-4

思考题2-4(逆序对) 假设A[1..n]A[1..n]A[1..n]是一个有nnn个不同数的数组,若i&lt;ji&lt;ji<j且A[i]&gt;A[j]A[i]&gt;A[j]A[i]>A[j],则对偶(i,j)(i,j)(i,j)称为A的一个逆序对(inversion)。 a.列出数组&lt;2,3,8,6,1&gt;&l...

生命不息,代码不止 958

算法导论 思考题 2-3

a.n b.n平方 c.感觉这题题目有问题。。。。。。  应该将迭代递推式中的i-1替换为i  i=n时,y=an  i=n-1时,y=an-1+xan  直到i=0时,得到需要证明的式子。 d.懒得证明了。。

苦海无涯闯进来 883
上一篇: [算法导论][算法实现与分析]冒泡排序
下一篇: [系统操作][Linux]YouKnowWho4Linux
cloudblaze
博客等级 码龄17年 81粉丝 125原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值