东师《算法分析与设计》20春在线作业1答案30728

合集下载

算法设计与分析习题答案

算法设计与分析习题答案

算法设计与分析习题答案算法设计与分析是计算机科学中一个重要的领域,它涉及到算法的创建、优化以及评估。

以下是一些典型的算法设计与分析习题及其答案。

习题1:二分查找算法问题描述:给定一个已排序的整数数组,编写一个函数来查找一个目标值是否存在于数组中。

答案:二分查找算法的基本思想是将数组分成两半,比较中间元素与目标值的大小,如果目标值等于中间元素,则查找成功;如果目标值小于中间元素,则在左半部分继续查找;如果目标值大于中间元素,则在右半部分继续查找。

这个过程会不断重复,直到找到目标值或搜索范围为空。

```pythondef binary_search(arr, target):low, high = 0, len(arr) - 1while low <= high:mid = (low + high) // 2if arr[mid] == target:return Trueelif arr[mid] < target:low = mid + 1else:high = mid - 1return False```习题2:归并排序算法问题描述:给定一个无序数组,使用归并排序算法对其进行排序。

答案:归并排序是一种分治算法,它将数组分成两半,分别对这两半进行排序,然后将排序好的两半合并成一个有序数组。

```pythondef merge_sort(arr):if len(arr) > 1:mid = len(arr) // 2left_half = arr[:mid]right_half = arr[mid:]merge_sort(left_half)merge_sort(right_half)i = j = k = 0while i < len(left_half) and j < len(right_half): if left_half[i] < right_half[j]:arr[k] = left_half[i]i += 1else:arr[k] = right_half[j]j += 1k += 1while i < len(left_half):arr[k] = left_half[i]i += 1k += 1while j < len(right_half):arr[k] = right_half[j]j += 1k += 1arr = [38, 27, 43, 3, 9, 82, 10]merge_sort(arr)print("Sorted array is:", arr)```习题3:动态规划求解最长公共子序列问题问题描述:给定两个序列,找到它们的最长公共子序列。

算法分析与设计作业参考答案

算法分析与设计作业参考答案

算法分析与设计作业参考答案《算法分析与设计》作业参考答案作业⼀⼀、名词解释:1.递归算法:直接或间接地调⽤⾃⾝的算法称为递归算法。

2.程序:程序是算法⽤某种程序设计语⾔的具体实现。

⼆、简答题:1.算法需要满⾜哪些性质?简述之。

答:算法是若⼲指令的有穷序列,满⾜性质:(1)输⼊:有零个或多个外部量作为算法的输⼊。

(2)输出:算法产⽣⾄少⼀个量作为输出。

(3)确定性:组成算法的每条指令清晰、⽆歧义。

(4)有限性:算法中每条指令的执⾏次数有限,执⾏每条指令的时间也有限。

2.简要分析分治法能解决的问题具有的特征。

答:分析分治法能解决的问题主要具有如下特征:(1)该问题的规模缩⼩到⼀定的程度就可以容易地解决;(2)该问题可以分解为若⼲个规模较⼩的相同问题,即该问题具有最优⼦结构性质;(3)利⽤该问题分解出的⼦问题的解可以合并为该问题的解;(4)该问题所分解出的各个⼦问题是相互独⽴的,即⼦问题之间不包含公共的⼦问题。

3.简要分析在递归算法中消除递归调⽤,将递归算法转化为⾮递归算法的⽅法。

答:将递归算法转化为⾮递归算法的⽅法主要有:(1)采⽤⼀个⽤户定义的栈来模拟系统的递归调⽤⼯作栈。

该⽅法通⽤性强,但本质上还是递归,只不过⼈⼯做了本来由编译器做的事情,优化效果不明显。

(2)⽤递推来实现递归函数。

(3)通过Cooper 变换、反演变换能将⼀些递归转化为尾递归,从⽽迭代求出结果。

后两种⽅法在时空复杂度上均有较⼤改善,但其适⽤范围有限。

三、算法编写及算法应⽤分析题: 1.冒泡排序算法的基本运算如下: for i ←1 to n-1 dofor j ←1 to n-i do if a[j]交换a[j]、a[j+1];分析该算法的时间复杂性。

答:排序算法的基本运算步为元素⽐较,冒泡排序算法的时间复杂性就是求⽐较次数与n 的关系。

(1)设⽐较⼀次花时间1;(2)内循环次数为:n-i 次,(i=1,…n ),花时间为:∑-=-=in j i n 1)(1(3)外循环次数为:n-1,花时间为:2.设计⼀个分治算法计算⼀棵⼆叉树的⾼度。

《算法分析与设计》奥鹏东师网考题库正确答案

《算法分析与设计》奥鹏东师网考题库正确答案
A.错误
B.正确
【答案】A
139. strcmp()函数用来()。
A.求字符串长度
B.比较字符
C.求子串
D.字符串拷贝
【答案】B
140.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为log2n。
A.错误
B.正确
【答案】A
141.采用简单选择排序,比较次数与移动次数分别为()。
A. O(n),O(logn)
A.对象
B.符号
C.标识符
D.命名规则
【答案】C
12.一个算法的评价主要从时间复杂度和()来考虑。
A.空间复杂度
B.算法有效性
C.算法有穷性
D.算法可读性
【答案】A
13. ()是一个开放源代码的、基于Java的可扩展开发平台。
A. VS
B. Dev-C++
C. Eclipse
D. JDK
【答案】C
14.十六进制的213,1的位权是()。
A. 8,9,7,4,1,2
B. 1,9,7,4,8,2
C. 8,7,4,1,2,9
D. 1,2,8,9,7,4
【答案】B
131.字符数组通过()来引用其中的某个元素。
A.数组名
B.下标
C.数组名和下标
D.字符串名
【答案】C
132.统计字符串长度时包括字符串结束标志。
A.错误
B.正确
【答案】A
133.字符数组要求其最后一个元素是‘\0’。
A.错误
B.正确
【答案】B
136.下面给出的四种排序方法中,排序过程中的比较次数与排序方法无关的是()。
A.选择排序法
B.插入排序法

算法分析与设计习题集答案

算法分析与设计习题集答案

算法分析与设计习题集基础篇1、算法有哪些特点?它有哪些特征?它和程序的主要区别是什么?特点:就是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算〔书上定义〕特征:输入、输出、有穷性、明确性、有效性区别:算法是完成特定任务的有限指令集。

程序是用电脑语言编写的写成特定任务的指令序列。

2、算法的时间复杂度指的是什么?如何表示?算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。

这是一个关于代表算法输入值的字符串的长度的函数。

时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。

〔百度百科〕3、算法的空间复杂度指的是什么?如何表示?一个程序的空间复杂度是指运行完一个程序所需内存的大小。

利用程序的空间复杂度,可以对程序的运行所需要的内存多少有个预先估计。

一个程序执行时除了需要存储空间和存储本身所使用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单元和存储一些为现实计算所需信息的辅助空间。

程序执行时所需存储空间包括以下两部分。

〔1〕固定部分。

这部分空间的大小与输入/输出的数据的个数多少、数值无关。

主要包括指令空间〔即代码空间〕、数据空间〔常量、简单变量〕等所占的空间。

这部分属于静态空间。

〔2〕可变空间,这部分空间的主要包括动态分配的空间,以及递归栈所需的空间等。

这部分的空间大小与算法有关。

一个算法所需的存储空间用f(n)表示。

S(n)=O(f(n))其中n为问题的规模,S(n)表示空间复杂度。

答:最坏情况时间复杂性:最好情况时间复杂性::I*是DN中使T(N, I*)到达Tmax(N)的合法输入;P(I)是在算法的应用中出现输入I的概率10、限界函数的功能是什么?答:用限界函数剪去得不到最优解的子树11、设某一函数定义如下:编写一个递归函数计算给定x的M〔x〕的值。

本函数是一个递归函数,其递归出口是:M〔x〕= x-10x>100递归体是:M〔M〔x+11〕〕x ≤100实现此题功能的递归函数如下:intm ( intx ){ int y;if ( x>100 )return(x-10 );else {y =m(x+11) ;return (m (y ));}procedure M(x)if x>100 thenreturn(x-10)elsereturn M(M(x+11))endifend M12、已知一个顺序表中的元素按元素值非递减有序排列,编写一个函数删除表中多余的值相同的元素。

[东北师范大学]《算法分析与设计》20春在线作业1

[东北师范大学]《算法分析与设计》20春在线作业1

【奥鹏】-[东北师范大学]算法分析与设计20春在线作业1试卷总分:100 得分:100第1题,按F5开始调试,程序便会直接运行到断点处。

接下来可以逐行来运行程序,查看各个变量的值,也可以直接运行到下一个断点或程序结束,这样过程被称作()。

A、设置断点B、单步调试C、程序编译D、程序调试正确答案:B第2题,()主要是用来显示当前目录的名称或更改当前的目录。

A、dirB、cdC、typeD、fc正确答案:B第3题,输出一个字符串时使用()格式符。

A、%cB、%sC、%dD、%e正确答案:B第4题,动态规划是一种在数学和计算机科学中使用的,用于求解包含()的最优化问题的方法。

A、重叠子问题B、相似子问题C、互斥子问题D、有序子问题正确答案:A第5题,如何一步步的跟踪代码,找到问题,搞明白为何程序不能正常运行,这个过程称为()。

A、编写程序B、调试程序C、执行程序D、编译程序正确答案:B第6题,对于循环队列,下列叙述中正确的是()A、队头指针是固定不变的B、队头指针一定大于队尾指针C、队头指针一定小于队尾指针D、队头指针可以大于队尾指针,也可以小于队尾指针正确答案:D第7题,下列对队列的叙述正确的是()。

A、队列属于非线性表B、队列按“先进后出”原则组织数据C、队列在队尾删除数据D、队列按“先进先出”原则组织数据正确答案:D第8题,以C语言为例,下列四个选项中,均是不合法的用户标识符的是()。

A、BA、x_0、doB、float、1a0、_YC、x-y、goto、123D、_123、tmp、CHAR正确答案:C第9题,()命令用来显示ASCII码文件的内容。

A、dirB、cdC、typeD、fc正确答案:C第10题,下列排序算法中,其中()是稳定的。

A、堆排序,冒泡排序B、快速排序,堆排序C、直接选择排序,归并排序D、归并排序,冒泡排序正确答案:D第11题,strlen(str)是用来()。

A、求字符串长度B、比较字符C、求子串D、字符串拷贝正确答案:A第12题,批处理,也称为批处理脚本,其文件扩展名为()。

算法分析与设计作业(一)及参考答案

算法分析与设计作业(一)及参考答案

《算法分析与设计》作业(一)本课程作业由两部分组成。

第一部分为“客观题部分”,由15个选择题组成,每题1分,共15分。

第二部分为“主观题部分”,由简答题和论述题组成,共15分。

作业总分30分,将作为平时成绩记入课程总成绩。

客观题部分:一、选择题(每题1分,共15题)1、递归算法:(C )A、直接调用自身B、间接调用自身C、直接或间接调用自身D、不调用自身2、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的字问题,这些子问题:(D )A、相互独立B、与原问题相同C、相互依赖D、相互独立且与原问题相同3、备忘录方法的递归方式是:(C )A、自顶向下B、自底向上C、和动态规划算法相同D、非递归的4、回溯法的求解目标是找出解空间中满足约束条件的:(A )A、所有解B、一些解C、极大解D、极小解5、贪心算法和动态规划算法共有特点是:(A )A、最优子结构B、重叠子问题C、贪心选择D、形函数6、哈夫曼编码是:(B)A、定长编码B、变长编码C、随机编码D、定长或变长编码7、多机调度的贪心策略是:(A)A、最长处理时间作业优先B、最短处理时间作业优先C、随机调度D、最优调度8、程序可以不满足如下性质:(D )A、零个或多个外部输入B、至少一个输出C、指令的确定性D、指令的有限性9、用分治法设计出的程序一般是:(A )A、递归算法B、动态规划算法C、贪心算法D、回溯法10、采用动态规划算法分解得到的子问题:( C )A、相互独立B、与原问题相同C、相互依赖D、相互独立且与原问题相同11、回溯法搜索解空间的方法是:(A )A、深度优先B、广度优先C、最小耗费优先D、随机搜索12、拉斯维加斯算法的一个显著特征是它所做的随机选性决策有可能导致算法:( C )A、所需时间变化B、一定找到解C、找不到所需的解D、性能变差13、贪心算法能得到:(C )A、全局最优解B、0-1背包问题的解C、背包问题的解D、无解14、能求解单源最短路径问题的算法是:(A )A、分支限界法B、动态规划C、线形规划D、蒙特卡罗算法15、快速排序算法和线性时间选择算法的随机化版本是:( A )A、舍伍德算法B、蒙特卡罗算法C、拉斯维加斯算法D、数值随机化算法主观题部分:二、写出下列程序的答案(每题2.5分,共2题)1、请写出批处理作业调度的回溯算法。

最新奥鹏东北师范大学数据结构20春在线作业1-参考答案

最新奥鹏东北师范大学数据结构20春在线作业1-参考答案
C栈
D循环栈
【答案】:C栈|
3.任何一棵二叉树的叶结点在前序、中序和后序遍历序列中的相对次序( )。
【选项】:
A不发生改变
B发生改变
C稍有改变
D不能确定
【答案】:A
4.在k叉树中,度为0的结点称为( )。
【选项】:
A根
B叶
C祖先
D子孙
【答案】:B叶|
5.在下列排序算法中,哪一个算法的时间复杂度与记录初始排列无关()。
【选项】:
A空或只有一个结点
B高度等于其结点数
C任一结点无左子女
D任一结点无右子女
【答案】:B
14. n个结点的线索二叉树上含有的线索数为( )。
【选项】:
A n-1
B n
C n +1
D 2n
【答案】:C
15.广义表(( a , b , c , d ) )的表头是()。
【选项】:
A a
B ( )
C ( a , b , c , d )
东北师范大学
东师远程教育
数据结构20春在线作业1
参考答案
试读一页
数据结构20春在线作业1
1个后继,该数据结构是( )
【选项】:
A线性表
B广义表
C树形结构
D图结构
【答案】:A线性表|
2.插入、删除只能在同一端进行的线性表,称为( )。
【选项】:
A队列
B循环队列
C可以链接存储
D数据元素可以是多个字符
【答案】:B
8. head指向的带表头结点的单链表为空的判定条件是( )。
【选项】:
A head = = NULL
B head-&gt;next = = head

东师算法分析与设计20秋在线作业1

东师算法分析与设计20秋在线作业1

(单选题)1: 下列叙述中正确的是()
A: 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B: 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C: 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D: 上述三种说法都不对
正确答案: C
(单选题)2: 十进制算术表达式:3*512+7*64+4*8+5的运算结果,用二进制表示为()。

A: 10111100101
B: 11111100101
C: 11110100101
D: 11111101101
正确答案: B
(单选题)3: 十进制数2014等值于八进制数()。

A: 4028
B: 3736
C: 2726
D: 2014
正确答案: B
(单选题)4: 下面命名规则中,哪项不是现在比较常用的命名规则()。

A: 匈牙利命名法
B: 骆驼命名法
C: 下划线命名法
D: 图灵命名法
正确答案: D
(单选题)5: 下列叙述中正确的是()。

A: 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B: 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
C: 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D: 上述三种说法都不对
正确答案: B
(单选题)6: 在程序调试中,我们需要借助于()来中断程序的运行,查看变量的值。

A: 变量名
B: 断点
C: 设置断点函数
D: 程序段
正确答案: B
(单选题)7: 十六进制数C1B转换为二进制数是()。

A: 1100101101011。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(单选题)1: 下面给出的四种排序方法中,排序过程中的比较次数与排序方法无关的是()。

A: 选择排序法
B: 插入排序法
C: 快速排序法
D: 堆积排序法
正确答案: A
(单选题)2: 已知某二叉树的后序遍历序列是dabec,中序遍历序列是deabc,它的前序遍历序列是()
A: acbed
B: deabc
C: decab
D: cedba
正确答案: D
(单选题)3: 以下选项中合法的字符常量是()。

A: "B"
B: 68
C: D
D: '\010'
正确答案: D
(单选题)4: 在有序表A[1..12]中,采用二分查找算法查等于A[12]的元素,所比较的元素下标依次为()。

A: 5, 8, 10, 12
B: 6, 9, 11, 12
C: 4, 7, 9, 12
D: 1, 4, 8, 12
正确答案: B
(单选题)5: 下列数据结果中,能够按照“先进后出”原则存取数据的是()
A: 循环队列
B: 栈
C: 队列
D: 二叉树
正确答案: B
(单选题)6: strcat()函数是用来()。

A: 字符串连接
B: 比较字符
C: 求子串
D: 字符串拷贝
正确答案: A。

相关文档
最新文档