【算法分析与设计】【期中(末)复习题】【2022秋】

news2024/11/27 6:13:08

文章目录

  • 一. 单选题
  • 二. 填空题
  • 三. 判断题
  • 四. 多选题

一. 单选题

1.按照渐近阶从低到高的顺序排列下列表达式:

30n,2logn,4,n!

A. 4<30n<2logn<n!
B. 30n<4<2logn<n!
C. n!<4<2logn<30n
D. `4<2logn<30n<n!

O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(nk) < O(2n) < O(n!) < O(nn)
(常数阶 < 对数阶 < 线性阶 < 线性对数阶 < 平方阶 < 立方阶 < K次方阶 < 指数阶 < 阶乘阶 < n的n次方)

2.二维空间中有n个点,采用蛮力法法求其中距离最近的两个点,对应的算法时间复杂度是( )。
A. O(n2)=
B. O(n)
C. O(n3)
D. O(nlogn)

3.计算时间复杂度T(n)
T ( n ) = { 4 n=1 T ( n − 1 ) + 4 其它 T(n)= \begin{cases} 4& \text{n=1}\\ T(n-1)+4& \text{其它} \end{cases} T(n)={4T(n1)+4n=1其它

A. T(n)=4n
B. T(n)=2n
C. T(n)=8n
D. T(n)=n
解析:三种方法求递归算法的时间复杂度(递推,master定理,递归树)/CSDN@毕业势必进大厂

4.快速排序算法的效率取决于()
A. 序列是否有序排列
B. 划分的对称性
C. 原始序列是否逆序排列
D. 原始序列是否是正序排列

5.按照渐近阶从低到高的顺序排列下列表达式:

5n2,2logn,n1/3,4n

A. 4n<5n2<2logn<n1/3
B. n1/3<2logn<5n2<4n
C. 2logn<n1/3< 5n2<4n
D. 5n2<2logn<n1/3<4n

6.二分搜索算法是利用( )实现的算法。
A. 回溯法
B. 蛮力法
C. 分治策略
D. 动态规划

7.贪心算法能求得下面( )问题的整体最优解。
A. 活动安排问题
B. 多机调度问题
C. 0/1背包问题
D. n皇后问题

8.记号O的定义正确的是( )。
A. O(g(n)) = { f(n) | 存在正常数c和n0使得对所有n≥n0有:0≤ cg(n) ≤f(n) };
B. O(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n0>0使得对所有n≥n0有:0≤cg(n) < f(n) };
C. O(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n0>0使得对所有n≥n0有:0 ≤f(n)≤cg(n) };
D. O(g(n)) = { f(n) | 存在正常数c和n0使得对所有n≥n0有:0≤ f(n) ≤ cg(n) };
解析:算法导论学习 之 渐进符号/博客园@BlackStorm

9.下列算法中通常以自底向上的方式求解最优解的是( )。
A. 备忘录法
B. 回溯法
C. 贪心法
D. 动态规划法

10.一个问题可以用动态规划法或贪心法求解的关键特征是问题的( )
A. 重叠子问题性质
B. 定义最优解
C. 贪心选择性质
D. 最优子结构性质

11.函数f(n)=2n,g(n)=3n,则:()
A. 2n=O(3n)
B. 2n=Ω(3n)
C. 2n=o(3n)
D. 2n=θ(3n)

12.算法分析中,记号Ω表示()
A. 非紧上界
B. 渐近上届
C. 渐近紧界
D. 渐近下届

13.算法要对异常情况进行适当的处理,就是算法的()。
A. 可行性
B. 健壮性
C. 正确性
D. 有穷性

14.用枚举法求解0/1背包问题,算法的效率是( )
A. 多项式阶
B. 常数阶
C. 指数阶
D. 对数阶

15.动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,他们的主要差别是 ()。
A. 子问题是否容易计算
B. 是自顶向下解决还是自底向上解决
C. 问题能否递归解决
D. 子问题是否相互独立

16.设S是一组n条直线,其中没有两条是平行的,也没有三条在同一点相交。可以证明S中的直线确定了( )个交点。
A. Θ(n)
B. Θ(n2)
C. Θ(n(n-1))
D. Θ(n3)

17.Hanoi塔问题如下图所示。现要求将塔座A上的的所有圆盘移到塔座B上,并仍按同样顺序叠置。移动圆盘时遵守Hanoi塔问题的移动规则。由此设计出解Hanoi塔问题的递归算法正确的为:( )
在这里插入图片描述

A.

void hanoi(int n,int A,int C,int B)
{  
    if (n>0)
        { 
          hanoi(n-1,A,B,C); //将A座上的n-1个盘子借助B座移向C座
          move(n,A,B);       //将A座上最后一个盘子移向B座
          hanoi(n-1,C,A,B);//将C座上的n-1个盘子借助A座移向B座
        }
}

B.

void hanoi(int n,int C,int B,int A)
{  
    if (n>0)
        { 
          hanoi(n-1,A,C,B);
          move(n,A,B);
          hanoi(n-1,C,B,A);
        }
}

C.

void hanoi(int n,int A,int C,int B)
{  
    if (n>0)
        { 
          hanoi(n-1,A,C,B);
          move(n,A,B);
          hanoi(n-1,C,B,A);
        }
}

D.

void hanoi(int n,int C,int A,int B)
{  
    if (n>0)
        { 
          hanoi(n-1,A,C,B);
          move(n,A,B);
          hanoi(n-1,C,B,A);
        }
}

解析:汉诺塔——经典递归问题(c语言实现)/CSDN@小钟hhh

18.函数 f(n)=10,g(n)=log10,则:( )
A. 10=Ω(log10)
B. 10=o(log10)
C. 10=O(log10)
D. 10=θ(log10)

19.给出下面算法的时间复杂性

p = 0for( i =0;i<= 2n;i++) 
     p = p*i;

A. O(n)
B. O(n4)
C. Ο(2n)
D. O(n2)

20.函数 f(n)=log2n,g(n)=logn,则 :()
A. log2n=O(logn)
B. log2n=o(logn)
C. log2n=θ(logn)
D. log2n=Ω(logn)

二. 填空题

1.下面算法的时间复杂度为()

void main()
{  
    int m,i,s;
    for(m=2;m<=1000;m++)
    {
        s=0;
        for (i=1;i<=m/2;i++)
            if (m%i==0) 
                s+=i; //i是m的一个因子
            if (m==s)
                printf("%d ",m);
    }
}

1或O(1)

2.蛮力法是一种简单直接地解决问题的方法,也是最低效的方法。典型的()时间算法一般都是采用蛮力法。

指数

3.利用快速排序算法对下面10个整数进行一次划分,基准为第一个数字2,划分结果为(数字之间以逗号分隔):

1,2,5,7,10,6,9,4,3,8

1,2,5,7,10,6,9,4,3,8

4.Cook论题以多项式时间复杂性为分界线,将可以在多项式时间内解决的问题称为( ),将在指数时间 解决的问题称为( )

(1) 易解问题
(2) 难解问题

5.分治和()就像孪生兄弟,总是同时应用于算法设计之中。

递归

6.在函数的定义过程中出现了调用此函数的语句,这种函数称为()函数。

递归

7.算法中描述的操作都可以通过已经实现的基本操作运算有限次实现。这指的是算法的( )

可行性

8.蛮力法也称( ),它的基本思想是采用一定的策略依次处理待求解问题的所有元素,从而找出问题的解。

穷举法

枚举法

9.算法的( )性质指的是一个算法的执行必须结束。也就是说一个算法它所包含的计算步骤和每个步骤都能在有限时间内完成。

有穷性

10.主程序中调用下面算法f(3),写出程序的输出。

void f(int n)
{  
    if (n<1) 
        return;
    else
    { 
        printf("n=%d\n",n);
        f(n-1);
        printf("n=%d\n",n);
  }
}

n=3
n=2
n=1
n=1
n=2
n=3

11.函数嵌套调用和返回时 ,函数之间的信息传递和控制转移必须通过()来实现。

12.一个算法的存储量包括形参所占空间和临时变量所占空间。在对算法进行存储空间分析时,只考察( )所占空间。

临时变量

三. 判断题

1.实现分治策略的算法时,只能采用递归函数。
A. 对
B. 错

2.O(1)=O(8),O(1)和O(8)表示同一个函数时,差别仅在于其中的常数因子。
A. 对
B. 错

3.一个算法的效率用O符号表示时,总是采用最有价值的g(n)表示,称之为“紧凑下界”或“紧确下界”。
A. 对
B. 错

4.Θ符号比O符号和Ω符号都精确,f(n)=Θ(g(n)),只要g(n)既是f(n)的上界又是f(n)的下界。
A. 对
B. 错

答案解析:当且仅当

5.分治策略将求出的小规模的问题的解合并为一个更大规模的问题的解,自顶向下逐步求解原来问题。
A. 对
B. 错

答案解析:自底向上

6.算法分析是分析算法占用计算机资源的情况,即分析算法的时间复杂度。
A. 对
B. 错

7.如果一个算法对其每一个输入实例,都能输出正确的结果并停止,则称它是可靠的。
A. 对
B. 错

8.算法A的运行时间至少是O(),这种说法没有意义
A. 对
B. 错

四. 多选题

1.设n为算法中的问题规模,通常用()渐进符号表示算法的执行时间与n之间的一种增长关系。
A. Ω
B. Σ
C. O
D. Θ

2.对算法与数据结构关系的描述,正确包括()。
A. 数据结构是算法设计的基础
B. 算法设计就是在选定的存储结构上设计一个满足要求的好算法
C. 一种数据结构只支持一种算法
D. 算法是编程思想,数据结构是这些思想的逻辑基础

3.分治策略所能解决的问题一般具有以下几个特征()。
A. 问题的规模缩小到一定程度就可以容易求解
B. 子问题之间相互重叠
C. 子问题的解可以合并出原问题的解
D. 问题可以分解为若干个规模较小的相同问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/88670.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLO算法改进之结合GradCAM可视化热力图(附详细教程)

🎄🎄YOLOv5/v7改进之结合GradCAM可视化热力图(附详细教程)🎄🎄 🚀🚀🚀NEW!!!魔改YOLOv5/v7目标检测算法来啦 ~ 🐱‍🏍 计算机视觉 —— 致力于目标检测领域科研Tricks改进与推荐 | 主要包括主干网络改进、轻量化网络、注意力机制、检测头部改进、空间金…

主数据管理(MDM),数据中台,国内有哪些知名供应商呢?

当企业的信息化、数据化发展到一定阶段的时候&#xff0c;大部分企业都会对主数据管理产生需求。为帮助企业加速数字化建设步伐&#xff0c;亿信华辰凭借多年在行业领域内积累的丰富经验并结合相关大数据技术成功打造了一款主数据管理产品&#xff0c;覆盖主数据标准、主数据质…

019 | 探究布衣上的刺绣图腾文化功能——以贵州册亨县布依族刺绣为例 | 大学生创新训练项目申请书 | 极致技术工厂

研究目的 当今我国社会的主要矛盾是人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾。但经济增长过快所带来的联动效应&#xff0c;导致人们一定程度上只注重金钱、利益&#xff0c;从而忽视了培养高尚的理想信念和增强民族精神的重要性。社会要保持平衡性&#xff…

基于低代码平台设计的订单管理系统,助力家具行业信息化建设

编者按&#xff1a;随着信息化的高速发展&#xff0c;传统的人工订单管理模式已经不适合现在企业发展的需求&#xff0c;一个成熟的订单管理系统可以帮助企业解决订单管理混乱的问题。本文介绍了低代码平台在订单管理系统实现方面的优势&#xff0c;并展示了相关案例。 关键词…

PE文件详解

字节存放顺序是小尾存储&#xff0c;高位保存高字节、低位保存低字节&#xff0c;因此是两位两位倒着读 1、DOS头&#xff1a;包括MZ头和DOS存根&#xff0c;指向DOS可执行程序部分 &#xff08;1&#xff09;MZ头&#xff1a;长度 40H&#xff0c;即4行乘16位&#xff0c; e_…

mmap

文章目录使用示例函数原型mmapmunmap传统读写文件mmap 原理eager实现lazy实现缺点使用示例 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <sys/mman.h>int main(i…

高并发编程之阻塞队列

9 阻塞队列 9.1 BlockingQueue 简介 Concurrent 包中&#xff0c;BlockingQueue 很好的解决了多线程中&#xff0c;如何高效安全 “传输”数据的问题。通过这些高效并且线程安全的队列类&#xff0c;为我们快速搭建 高质量的多线程程序带来极大的便利。本文详细介绍了 Bloc…

十四、JavaScript——类型转化_数值

一、定义 将其他的数据类型转化为数值 使用Number()函数来将其他类型转化为数值&#xff0c;适用于任何类型使用parseInt() -- 将一个字符串转化为一个整数 -解析时&#xff0c;会自作向右读取一个字符串&#xff0c;直到读取到所有的整数位 parseFloat()…

想学设计模式、想搞架构设计,先学学 UML 系统建模吧

UML 系统建模 1 概述 1.1 课程概述 汇集 UML 及其相关的一些话题回顾 UML 相关的符号与概念以电商订单相关业务为例&#xff0c;借助 UML 完成系统建模将 UML 变成提升建模效率&#xff0c;表达架构思想的工具 1.2 什么是 UML ​ Unified Modeling Language 统一建模语言&a…

MEMS运动传感器:三轴数字输出陀螺仪——L3GD20

一、框图和引脚说明 二、机械和电气规格 三、应用 四、数字框图 4.1 框图 4.2 FIFO L3GD20为三个输出通道(偏航、俯仰和滚转)分别嵌入了32个16位数据FIFO槽。 五种模式&#xff1a;Bypass mode、FIFO mode、Stream mode、Bypass-to-Stream mode and Stream-to-FIFO mode。 …

ICG-Amine|ICG标记氨基|ICG-NH2

ICG-Amine|ICG标记氨基|ICG-NH2 中文名称&#xff1a;ICG标记氨基英文名称&#xff1a;ICG-Amine 分子式&#xff1a;C47H56N4O4S 分子量&#xff1a;773.04 外观&#xff1a;绿色粉末 溶解度&#xff1a;二氯甲烷 纯度&#xff1a;95% 结构式&#xff1a; Indocyanine …

JUC并发编程第十二篇,详解Synchronized与锁升级

详解Synchronized与锁升级一、概述二、Synchronized 版本升级优化与锁对象1、版本变化2、为什么每一个对象都可以成为一个锁&#xff1f;三、Synchronized锁升级步骤详解1、如何升级&#xff1f;2、无锁&#xff0c;不会出现竞争3、偏向锁4、轻量级锁5、重锁6、三种锁的比较四、…

接口测试实战 | Android 高版本无法抓取 HTTPS,怎么办?

image1080327 43.8 KB 【编者按】本文为霍格沃兹测试学院 yuye 同学的接口测试实践笔记。 在接口测试中&#xff0c;相信很多人都遇到过 Android 高版本&#xff08;Android7.0 以上&#xff09;系统无法抓包的问题。 由于在测试过程中对分析定位问题很不方便&#xff0c;所以…

Solidity地址支付方法Send、Transfer和Call的使用

以上三种转账方式都属于地址的成员属性&#xff08;members of address&#xff09;。 参见地址成员类型 Transfer 如果当前合约的余额不够大或者 Ether转账被接收账户拒绝&#xff0c;转账功能将失败。接收方智能合约应定义回退函数&#xff0c;否则转账调用将引发错误。tr…

以生态共建促产业发展,点亮HPC新未来

作者 | 曾响铃 文 | 响铃说 作为IT行业的“明珠”&#xff0c;极“硬核”的高性能计算不如云计算、AI、物联网技术备受关注。但不可忽视的是&#xff0c;近年来&#xff0c;高性能计算正在从高精尖科研加速迈向千行百业&#xff0c;成为推动数字经济发展的新引擎。在近日举办…

springboot - 原理初探

自动配置&#xff1a; 1、pom.xml &#xff08;1&#xff09;sping-boot-dependencies&#xff1a;核心依赖在父工程中&#xff01;&#xff01;&#xff01; &#xff08;pom.xml文件中&#xff0c;spring-boot-starter-parent 点进去&#xff0c;然后&#xff0c;spring-…

C51 - 准双向I/O口结构

Contents1> P1口1.1> 写 "0" 过程1.2> 写 "1" 过程1.3> 读引脚”准“双向问题&#xff1a;1.4> 读 寄存器2> P3口3> P0口1> P1口 没画【P1.0/T2】【P1.1/T2EX】第2功能&#xff1b; 1.1> 写 “0” 过程 D触发器FF1&#xff0c;…

ssm+Vue计算机毕业设计校园新闻发布系统(程序+LW文档)

ssmVue计算机毕业设计校园新闻发布系统&#xff08;程序LW文档&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技…

微信小程序-视图与逻辑

文章目录1. 页面导航2. 导航传参3. 下拉刷新4. 上拉触底5. 自定义编译模式6.生命周期7. wxs脚本1. 页面导航 页面导航指的是页面之间的相互跳转。例如&#xff0c;浏览器中实现页面导航的方式有如下两种&#xff1a; 声明式导航 在页面上声明一个<navigator>导航组件通…

java swing(GUI) MySQL实现的学生选课签到考勤系统源码开发教程

今天给大家演示一款由Java swing即GUI和mysql数据库实现的&#xff0c;学生签到考勤信息管理系统&#xff0c;系统采用了MVC的设计模式&#xff0c;结构层次非常清晰&#xff0c;此外&#xff0c;该项目有手把手的开发教程&#xff0c;适合刚入门Java的学生学习&#xff0c;下面…