算法设计与分析(python版)-作业一
参考教材:算法设计与分析(Python版) 作者:王秋芬
1 . 容易 (4分)2 n=O(100n ^2)
错误
2 . 容易 (3分)10=θ(log10)
正确
3 . 容易 (3分)2^n=O(3 n)
正确
4 . 容易 (3分)logn^ 2=θ(logn+5)
正确
5 . 容易 (3分)针对顺序查找算法,影响它时间复杂度的因素只有算法的输入序列()
错误
因素有:输入序列、问题规模
6 . 容易 (3分)n!的时间复杂度为O(n)
正确
7 . 容易 (3分)递归是指自己间接或直接调用自身
正确
8 . 普通 (3分)算法的基本特征有()
A. 输入
B. 输出
C. 有限性
D. 确定性
E. 可行性
9 . 普通 (3分)渐进复杂性的含义是()情况下的复杂性。
A. 在最佳输入情况下
B. 问题规模趋向于无穷
C. 在最坏输入情况下
D. 平均各种输入之后
10 . 普通 (3分)n个连续自然数a1...an连加和问题算法(利用等差数列求和公式)的输入可以是什么()。
A. a1,n
B. an,n
C. a1,an
D. a1,an,n
11 . 普通 (3分)平均时间复杂度是指()
A. 各种情况时间复杂度按概率的加权平均
B. 最好情况和最坏情况的时间复杂度的算术平均
C. 各种情况时间复杂度按概率的算术平均
D. 出现可能性最高的情况下的时间复杂度
平均时间复杂度是指各种情况时间复杂度按概率的加权平均
12 . 容易 (3分)算法的常见描述方式不包括()
A. 代码
B. 甘特图
C. 伪代码
D. 流程图
13 . 容易 (3分)算法的基本特性不包括()
A. 先进性
B. 有穷性
C. 有输入输出
D. 无二义性
算法的特性包括有输入输出,确定性(无二义性),有限性(有穷性),可行性(能行性)。
14 . 普通 (3分)阶乘问题求n!算法的时间复杂度为()。
A. n
B. n!
C. 2n
D. n^2
15 . 容易 (3分)二分搜索(二分查找)算法的时间复杂度是()。
A. n
B. logn
C. n^2
D. 2n
16 . 普通 (3分)汉诺塔问题的时间复杂度是()。
A. n!
B. 2^n
C. 2n
D. logn
17 . 容易 (3分)下述描述算法的方式采用的是算法的哪种描述方式()? 算法:gcd(m,n) 输入:非负整数m,n,其中m,n不全为0 输出:m与n的最大公约数 1.while m>0 do 2. r←n mod m 3. n ←m 4. m ←r 5.return n
A. 自然语言
B. 程序流程图
C. 伪码
D. 程序设计语言
18 . 普通 (3分)背包问题的算法设计策略是()
A. 重量小的优先装
B. 价值大的优先装
C. 单位重量价值大的优先装
D. 以上都不对
19 . 容易 (3分)调度问题的算法设计策略是()
A. 加工时间短的优先安排
B. 加工时间长的优先安排
C. 等待时间短的优先安排
D. 以上都不对
20 . 普通 (3分)n个元素的冒泡排序代码如下:
def bubble_sort(arr):for i in range(len(arr) - 1):for j in range(len(arr) - i - 1):if arr[j] > arr[j + 1]:arr[j], arr[j + 1] = arr[j + 1], arr[j]return arr
请分析算法的时间复杂度,用O表示()
A. O(1)
B. O(n)
C.
D. O(nlogn)
n-1次冒泡 第一次比较n-1次 第二次比较n-2次 ......... 最后一次比较1次 共1+2+3+......+(n-1)
学生答案
21 . 普通 (3分)百元买白鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?设计一算法,则该算法的输入是()
A. 100元
B. 100只鸡
C. 各种鸡的单价
D. 无需任何输入
22 . 普通 (3分)下面算法最好情况下的时间复杂度___,最坏情况下的时间复杂度为___
def bubble_sort(nums):
for i in range(len(nums) - 1):
swap_flag = False #改进后的冒泡,设置一个交换标志位
for j in range(len(nums) - i - 1):
if nums[j]>nums[j+1]:
nums[j],nums[j+1]=nums[j+1],nums[j]
swap_flag = True
if not swap_flag:
return nums #若没有元素交换,则表示已经有序
return nums
O(n)、O(n^2)
23 . 普通 (3分)以下递归程序fun(5,0)输出的第一个元素是___,求解过程中最大层次为___
def fun(i,d):
if(i>1 and i%2!=0):
fun(i-i//2,d+1)
if(i>1): fun(i//2,d+1)
1、4
24 . 普通 (3分)斐波那契数列的第1项为1,第2项为2,以后每一项等于前面两项之和,则第6项为___
13
25 . 普通 (3分)冒泡排序时间复杂度是___,堆排序时间复杂度是___。
O(n^2) 、nlogn
26 . 容易 (3分)递归算法必须具备的两个条件是___和___
边界条件或停止条件、递推方程或递归方程
27 . 普通 (3分)用O表示21+1/n的阶(O(1))
O(1)
28 . 普通 (3分)用O表示10log3 n的阶()
O(n)
29 . 普通 (3分)用O表示logn 3的阶()
O(logn)
30 . 容易 (3分)用O表示
的阶___
O(2^n)
31 . 容易 (3分)用O表示3n2+10n的阶___
O(n^2)
32 . 普通 (3分)请分析选择排序算法的时间复杂度,用O表示为:___
def selection_sort(arr):
# 第一层for表示循环选择的遍数
for i in range(len(arr) - 1):
# 将起始元素设为最小元素
min_index = i
# 第二层for表示最小元素和后面的元素逐个比较
for j in range(i + 1, len(arr)):
if arr[j] < arr[min_index]:
# 如果当前元素比最小元素小,则把当前元素角标记为最小元素角标
min_index = j
# 查找一遍后将最小元素与起始元素互换
arr[min_index] , arr[i] = arr[i] , arr[min_index]
return arr
O(n^2)
33 . 普通 (3分)请分析下面算法的时间复杂度:
def bubble_sort(nums):
for i in range(len(nums) - 1):
swap_flag = False
#改进后的冒泡,设置一个交换标志位
for j in range(len(nums) - i - 1):
if nums[j]>nums[j+1]:
nums[j],nums[j+1]=nums[j+1],nums[j]
swap_flag = True
if not swap_flag:
return nums
#若没有元素交换,则表示已经有序
return nums
最好情况下,比较n-1次,时间复杂度为O(n) 最坏情况下,比较n(n-1)/2次,时间复杂度为O(n^2)
算法设计与分析(python版)-作业一相关推荐
- 算法设计与分析(python版)-作业三
参考教材:算法设计与分析(Python版) 作者:王秋芬 1 . 普通 (5分)以下问题中,哪些问题的分治算法消耗的时间与输入序列无关.() A. 二分查找 B. 合并排序 C. 快速 ...
- 算法设计与分析第一章作业
1.请上网了解编码规范,说明你本学期的主要编码规范. 腾讯的编码规范: 1.C++:对于C++来说,在2007年,腾讯就发布了C++编码规范,主要针对其公司的所有软件产品源代码范围的C和C++编码风格 ...
- 算法设计与分析第二章作业
1. 2.时间复杂度: 划分子问题:O(1) 求解子问题:2T(2/n) 合并子问题:O(n) 时间复杂度为:T(n) = O(1) + 2T(2/n) + O(n) = O(nlogn) 3.心得与 ...
- 程振波 算法设计与分析_算法设计与分析
本书按照教育部*制定的计算机科学与技术专业规范的教学大纲编写,努力与国际计算机学科的教学要求接轨.强调 算法 与 数据结构 之间密不可分的联系,因而强调融数据类型与定义在该类型上的运算于一体的抽象数据 ...
- 计算机算法设计与分析(第4版) 王晓东 著 2012.2 笔记(这本书还不错,偏实用、有难度)
计算机算法设计与分析(第4版) 目录 1 算法概述 2 递归与分治策略 3 动态规划 4 贪心算法 5 回溯法 6 分支限界法 7 随机化算法 8 线性规划与网络流 算法概述 复杂性分析 NP-完全性 ...
- 算法设计与分析(Algorithm Design )课后习题作业+期末复习+期末习题
课后习题作业资源链接 期末复习+期末习题资源链接 对应的书(不是算法导论):算法设计与分析(Algorithm Design ) Jon KIeinberg 著 张立昂 屈婉玲 译 有这本书中英文版. ...
- PHP第五周答案,算法设计与分析第五周作业——Word Ladder
算法设计与分析第五周作业--Word Ladder 上周找了一道深度搜索优先搜索的算法题来做,于是这周就选了一道广度优先搜索算法题来试试手. 本周所选题目:原题目链接 题目详情 题目大意:给出一个字符 ...
- 太原理工大学linux与python编程r实验报告_太原理工大学算法设计与分析实验报告...
<太原理工大学算法设计与分析实验报告>由会员分享,可在线阅读,更多相关<太原理工大学算法设计与分析实验报告(12页珍藏版)>请在人人文库网上搜索. 1.本科实验报告课程名称: ...
- java实现 库鲁斯卡尔算法 kruskal(算法设计与分析作业)
java实现 库鲁斯卡尔算法kruskal(算法设计与分析作业) package package1;import java.util.Arrays;public class alg {//判断tar是 ...
最新文章
- 软件测试培训需要学习什么技术
- Win7安装visual c++ 2015 redistributable x64失败
- Ubuntu系统如何安装nodejs及npm
- 【mybatis学习记录】mybatis的各种查询 一对一关联查询(4种方式) 一对多(2种方式)
- 机器学习与分布式机器学习_我将如何再次开始学习机器学习(3年以上)
- Dapr微服务应用开发系列4:状态管理构件块
- 封装jQuery下载文件组件
- oc渲染器中文手册_C4D·OC高级渲染视频教程,带你玩转质感渲染
- 软件项目管理的基本概念
- Matlab分号的使用
- 土味情话恋爱话术微信小程序源码下载
- 学习笔记:Java 并发编程①_基础知识入门
- Spring Cloud 升级之路 - 2020.0.x - 1. 背景知识、需求描述与公共依赖
- windows store下载_年度付费软件排行榜这10款软件,你用过5款以上,就算效率达人!Windows平台...
- 能上qq但是打不开网页-详解DNS
- android大字体原理,如何让Android TextView(包括子类)的字体大...
- JavaScript-高级进阶
- 软件、宇宙、人生、扯淡
- Django计算机毕业设计JAVA高校田径运动会管理(程序+LW)Python
- HP 5200LX驱动安装历程