算法分析基础题目

news2024/11/13 9:11:07

第一章-算法概述

  1. 递归算法必须具备的两个条件是边界条件或停止条件递推方程或递归方程
  2. 冒泡排序时间复杂度是___,堆排序时间复杂度是___。 O ( n 2 ) O(n^2) O(n2), O ( n l o g n ) O(nlogn) O(nlogn)
  3. 斐波那契数列的第1项为1,第2项为2,以后每一项等于前面两项之和,则第6项为13
  4. 算法分析主要是分析算法的性能,包括时间复杂度和空间复杂度
  5. 请求解递归式:n>1时,T(n)=2T(n/2)+n,否则T(n)=1,则其θ形式,T(n)=θ(nlogn)
  6. 以下递归程序fun(5,0)输出的第一个元素是1,求解过程中最大层次为4

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. img递推方程的解是 O ( n 2 ) O(n^2) O(n2)
  2. 求递推方程img得到的解是 O ( n l o g n ) O(nlogn) O(nlogn)
  3. 求递推方程img得到的解是 O ( n l o g n ) O(nlogn) O(nlogn)
  4. bubble_sort最好情况下的时间复杂度 O ( n ) O(n) O(n),最坏情况下的时间复杂度为 O ( n 2 ) O(n^2) O(n2)

第二章-分治法

  1. 有关以下代码,说法正确的是(ABCE)

    def BinarySearch(s, x, low, high):
      if (low > high):
        return -1
    	middle = (low + high) / 2
    	if (x == s[middle]):
    		return middle
    	elif(x > s[middle]):
    		return BinarySearch(s, x, middle + 1, high)
    	else :
    		return BinarySearch(s, x, low, middle - 1)
    

    A.BinarySearch的功能是针对有序序列s[] ,采用二分搜索技术查找指定元素x.

    B.if (low>high) return -1;该语句为递归的边界条件。

    C.将问题规模一份为二的语句是middle=(low+high)/2;

    D.递归序列左半部分的语句是BinarySearch (s, x, middle+1, high);

    E.递归序列左半部分的语句是BinarySearch (s, x, low, middle-1);

  2. 以下问题中,哪些问题的分治算法消耗的时间与输入序列无关.(BD)

    A.二分查找

    B.合并排序

    C.快速排序

    D.最小值问题

  3. 填写以下二分搜索的代码中空缺的部分。(low+high)/2

    def BinarySearch(s, x, low, high):
      if (low > high):
        return -1
    	middle = ___; //分解
    	if (x == s[middle]):
      	return middle
    	elif(x > s[middle]):
      	return BinarySearch(s, x, middle + 1, high)
    	else :
      	return BinarySearch(s, x, low, middle - 1)
    
  4. n个元素中找第二大元素的分治算法时间复杂度的是 O ( n l o g n ) O(nlogn) O(nlogn)

  5. 根据下面斐波那契数列的递归算法,可知斐波那契数列递推方程的停止条件是n=0或n=1

def Fibonacci(int num):
  if(num == 0 || num == 1):return num
  return  Fibonacci(num-1)+Fibonacci(num - 2)
  1. 下面代码为求n!的递归算法,该代码反应的n!问题递归实现的停止条件(边界条件)为当n=1时n!=1

    def fun(n):
      if (n == 1):
        return 1
    	else :
      	return fun(n - 1) * n
    
  2. 对可排序的序列s[left:right]进行合并排序,其分治算法分解操作为mid = (left+right)//2,得到的两个子问题序列是s[left:mid],s[mid+1,right]

  3. 2k×2k的棋盘覆盖问题,用k表示问题的规模,则时间复杂度为O(4k)

  4. 线性时间选择问题寻找基准元素的方法是将n个元素按照5个元素一组进行分组,取每组的中位数,然后再取中位数的中位数作为基准

  5. 4个运动员的循环赛日程表算法安排的结果是第一天1-2,3-4,第二天1-3,2-4,第三天:1-4,2-3

第3章-回溯法

  1. 有关图的m着色问题说法正确的是(AC)

    A.该问题的解形式为(x1,x2,…,xn),xi表示第i个顶点着xi号色,其取值范围为:令S={1,2,…,m}为颜色集合,则xi∈S

    B.该问题的解空间的组织结构是排列树。

    C.该问题需要设置约束条件,不需要限界条件。

    D.该问题不需要设置约束条件,只需要限界条件。

    E.该问题既需要设置约束条件,也需要限界条件。

    1. 有关最小重量机器设计问题说法正确的是(BE)

    A.该问题的解形式为(x1,x2,…,xn),xi取值范围为:令S={1,2,…,n},则xi∈S-{x1,x2,…,xi-1}

    B.该问题的解空间的组织结构是满m叉树。

    C.该问题需要设置约束条件,不需要限界条件。

    D.该问题不需要设置约束条件,只需要限界条件。

    E.该问题既需要设置约束条件,也需要限界条件。

    1. n皇后问题的解的形式定义为(x1,x2,…,xn),其中,xi(i=1,2,…,n)的取值为1,2…,n,则它的解空间的组织结构为一棵 _ 树。如果,xi(i=1,2,…,n)的取值为{1,2,…,n}-{x1,x2,…,xi-1},则对应的解空间树是一棵_树 ,答案:满n叉树排列树

    2. 0-1背包问题的解的形式定义为(x1,x2,…,xn),其中,xi(i=1,2,…,n)的取值为0或1,则它的解空间的组织结构为一棵 ___。答案:子集树

    3. 最大团问题的解的形式定义为(x1,x2,…,xn),其中,xi(i=1,2,…,n)的取值为0或1,则它的解空间的组织结构为一棵 ___。答案:子集树

    4. 旅行售货员问题的解的形式定义为(x1,x2,…,xn),其中,xi(i=1,2,…,n)的取值{1,2,…,n}-{x1,x2,…,xi-1},则它的解空间的组织结构为一棵 ___。答案:排列树

    5. 图的m着色问题的解的形式定义为(x1,x2,…,xn),其中,xi(i=1,2,…,n)的取值为1,2…,m,则它的解空间的组织结构为一棵 ___ 树。答案:满m叉树

    6. 最小重量机器设计问题的解的形式定义为(x1,x2,…,xn),其中,xi(i=1,2,…,n)的取值为1,2…,m,则它的解空间的组织结构为一棵树,深度是___(默认根结点深度为0)。答案:满m叉树

    7. 回溯法采用的搜索方式是___。答案:深度优先

    8. 回溯法是一种能进则 __,进不了则___,换不了则___的搜索算法。答案:进、换、退或回

第4章-动态规划

  1. 有关0-1背包问题,用c[i][j]描述子问题:1…i共i个物品,背包容量为j的最优值(装入背包的最大价值),则其子问题为:1…i-1共i-1个物品,背包容量为j-w ix i,以下说法正确的是(ABD)

    A.当i=0时或j=0时,c[i][j]=0。

    B.当j<w i时,物品无法装入,其x i=0,则背包容量依旧为j,c]i][j]=c[i-1][j].

    C.当j≥w i时,物品可以装入,装呢还是不装呢?这取决于哪个决策能够让c[i][j]最小。故c]i][j]=min(c[i-1][j],c[i-1][j-w i]+v i)

    D.当j≥w i时,物品可以装入,装呢还是不装呢?这取决于哪个决策能够让c[i][j]最大。故c]i][j]=max(c[i-1][j],c[i-1][j-w i]+v i)

  2. 有关最优二叉搜索树说法正确的是(ABD)

    A.优二叉搜索树的左孩子的节点都比根节点小,右孩子节点都比根节点大。

    B.最优二叉搜索树的平均比较次数最少。

    C.最优二叉搜索树的平均比较次数最多。

    D.最优二叉搜索树中有n个是节点,n+1个虚节点。

  3. {s1,s2,…,sn},虚节点{e0,e1,…,en}的最优二叉搜索树问题的子问题描述为有序序列{si,si+1,…,sj},虚节点{ei-1,ei,…,ej}的最优二叉搜索树,以下描述正确的是(ABC)。

    A.i=1,j=n表示规模为n的原问题。

    B.i=j+1,表示字符序列为空,对应的最优二叉搜索树为一棵空树。

    C.有序序列{si,si+1,…,sj},虚节点{ei-1,ei,…,ej}的最优二叉搜索树的子问题是:有序序列{si,si+1,…,sk-1},虚节点{ei-1,ei,…,ek-1}的最优二叉搜索树和有序序列{sk+1,sk+2,…,sj},虚节点{ek,ek+1,…,ej}的最优二叉搜索树。

    D.子问题的最优值:最小平均比较次数c[i][j],左子树的最优值:最小平均比较次数c[i][k-1],右子树的最优值:最小平均比较次数c[k+1][j],三者之间的关系为:c[i][j]=c[i][k-1]+c[k+1][j]+pi+…+pj+qi-1+…+qj

  4. 有关最长公共子序列问题的动态规划算法说法正确的是(AB)

    A.X n和Y m的代表了两个长度为n和m的字符串,求X n和Y m的最长公共子序列的子问题是:求X i和Y j的最长公共子序列,i=0,1,…n,j=0,1,…,m。

    B.X i和Y j的最长公共子序列当i=0时,最长公共子序列的长度为0;j=0时,最长公共子序列的长度也为0。

    C.设X i和Y j的最长公共子序列的长度c[i][j],求最优值的递归关系式为:c[i][j]=c[i-1][j]。

    D.设X i和Y j的最长公共子序列的长度c[i][j],求最优值的递归关系式为:c[i][j]=c[i-1][j]+1。

  5. 矩阵连乘问题中有多个矩阵相乘,问题是安排矩阵相乘的先后顺序,使总乘法次数最少,例如 有[A][B]C三个矩阵,则可行的顺序有ABC\ACB\CAB\CBA\BAC\BCA六个。 答案:否

  6. 以动态规划求解0-1背包问题,背包容量可以是任意实数。 答案:否

  7. 最长公共子序列问题中,如果采取穷举法,可以在序列A中子序列可能的开头和结尾(因为子序列由其开头位置和结尾位置唯一确定),然后在序列B中查找它是否存在,如果按照子序列长度降序枚举,找到的第一个公共子序列就是最长公共子序列。答案:否

  8. 0-1背包问题的动态规划解法不适合背包容量非常大(img)的情况。答案:是

  9. 最长公共子序列问题的动态规划解法时间复杂度等于两个序列长度之积。答案:是

    1. 0-1背包问题的贪心法解法和动态规划解法都能够生成最优解。答案:否

第5章-贪心算法

  1. 贪心算法的贪心策略确定后可以更改() 答案:否
  2. 针对同一个问题,贪心策略可能有多个,贪心算法的好坏取决于贪心策略的好坏。 答案:是
  3. 一个好的贪心策略,肯定能得到问题的最优解。答案:否
  4. 贪心法具有高效性,它可以非常迅速地获得一个解。答案:是
  5. 找零钱问题一定能使得找出去的钱币数最少。答案:否
  6. 最优装载问题的贪心策略一定能使得装上船的集装箱个数最多。 答案:是
  7. 调度问题的贪心策略不一定能使得n个任务的总等待时间(总完成时间和)最短。 答案:否
  8. 会场安排的最佳贪心策略一定能保证安排最多的相容会议使用同一会议室。答案:是
  9. 物品可以切割的背包问题的最佳贪心策略不一定能保证装入背包的物品总价值最大。答案:否
  10. 堆排序、冒泡排序、快速排序都采用了贪心策略进行排序,答案:否

第6章-分支限界法

  1. 部落卫队问题。原始部落byteland中的居民们为了争夺有限的资源,经常发生冲突。几乎每个居民都有他的仇敌。部落酋长为了组织一支保卫部落的队伍,希望从部落的居民中选出最多的居民入伍,并保证队伍中任何2 个人都不是仇敌。给定byteland部落中居民间的仇敌关系,编程计算组成部落卫队的最佳方案。以下有关部落卫队问题说法正确的是(ACDE)

    A.该问题的解的形式为(x1,x2,…,x3),xi(i-1,2,3,…,n)=0或1,0表示居民未被选入部落卫队,1表示居民被选入部落卫队。

    B.该问题的解空间组织结构为一棵排列树,规模为n时,树的深度为n。

    C.该问题可以用分支限界法求解,也可以用回溯法求解。

    D.该问题需要设置约束条件,也需要设置限界条件。

    E.将给定的仇敌关系图转换成它的补图,则成为友好关系图,部落卫队问题实质就是最大团问题。

  2. 分支限界法和回溯法都是搜索法,但它们的搜索方式是不同的,分支限界法是以深度优先搜索的方式进行搜索,而回溯法是以广度优先的方式进行搜索,答案:否

  3. 分支限界法是一种“能进则进、进不了则换、换不了则退(回溯)”的搜索方法。答案:否

  4. 分支限界法有两种类型:队列式分支限界法和优先队列式分支限界法 答案:是

  5. 分支限界法的扩展方式为一次生成所有的孩子节点 答案:是

  6. 分支限界法搜索过程中保留下来的结点即为活结点,是符合约束条件的可能导致最优解的结点 答案:否

  7. 分支限界法搜索过程中,舍弃的是导致不可行解的结点和导致非最优解的结点 答案:是

  8. 分支限界法的求解目标则是找出满足条件的一个解。回溯法的求解目标是找出解空间树中满足条件的所有解。 答案:是

  9. 0-1背包问题可以用队列式分支限界法,也可以用优先队列式分支限界法求解。 答案:是

  10. 优先队列式分支限界法搜索过程中使用的活结点表可以用堆或优先队列等数据结构实现。 答案:是

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

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

相关文章

Labview通过OPC与S1200通信

一、配置PC的IP地址 二、S7-1200的配置 通过博图&#xff0c;在PLC CPU的属 性-常规-保护里勾选“允许从 远程伙伴使用PUT/GET通信 访问 三、新建一个DB1数据块&#xff0c;在DB1里新建一个变量&#xff0c;例如 名称为“ASD”&#xff0c;类型为“Word” 四、右击“DB1”&…

全球项目管理软件排行榜揭晓:谁将问鼎榜首?

项目管理软件是一种能够帮助企业和组织有效规划、执行和监控项目的工具。这些软件通常具有任务分配、资源管理、时间跟踪、报告生成等功能&#xff0c;可以提高项目管理的效率和质量。 项目管理软件为企业带来的便利 使用项目管理软件可以帮助企业和组织更好地管理项目&#x…

基于UDP协议的千兆以太网传输(FPGA)

[TOC]基于UDP协议的千兆以太网传输&#xff08;FPGA&#xff09; 一、UDP协议概述 UDP协议是一种基于无连接协议&#xff0c;即发送端发送数据无需确认接收端是否存在&#xff1b;接收端收到数据后也无需给发送端反馈是否收到&#xff0c;所以UDP在数据发送过程中允许丢失一两…

学会Pointer指针事件 ,一套拖拽事件两端(PC端、移动端)跑

早期浏览器很low&#xff0c;它只存在鼠标事件(MouseEvent)。随时代的发展出现了智能手机、平板电脑等触屏设备&#xff0c;交互方式发生了变化&#xff0c;单纯的鼠标事件已不够开发人员使用了。于是引入了触摸事件(TouchEvent)。不过这还不够完美&#xff0c;没有把触控笔事件…

深度卷积神经网络(AlexNet)

目录 1.基础简介 1.1基础介绍 1.2基础架构 2.Alexnet与LeNet的对比 3.参考代码 4.李沐老师给出的例子 1.基础简介 1.1基础介绍 2012年&#xff0c;AlexNet横空出世。它首次证明了学习到的特征可以超越手工设计的特征。它一举打破了计算机视觉研究的现状。 AlexNet使用…

[洛谷]P1162 填涂颜色(搜索连通块)

关键思路转换&#xff1a;从边界为0开始搜索&#xff0c;并且都标记&#xff0c;这些标记的不会被1包围&#xff0c;被1包围的肯定0不会被标记到&#xff0c;所以到时候把没被标记的0就是变成2即可。 详细&#xff1a; ACcode: #include<bits/stdc.h> using namespace s…

SpringCloud(2) 注册中心Eureka、Nacos

目录 1.背景2.Eureka 注册中心3.Nacos 注册中心4.常见面试题1&#xff09;服务注册和发现是什么意思&#xff1f;Spring Cloud 如何实现服务注册发现&#xff1f;2&#xff09;Nacos 和 Eureka 有什么区别&#xff1f; 1.背景 注册中心是微服务中必须要使用的组件&#xff0c;…

JavaWeb 笔记——2

JavaWeb 笔记——2 一、Maven1.1、Maven概述1.2、Maven简介1.3、Maven基本使用1.4、IDEA配置Maven1.6、依赖管理&依赖范围 二、MyBatis2.1、MyBatis简介2.2、MyBatis快速入门2.3、解决SQL映射文件的警告提示2.4、Mapper代理开发 一、Maven 1.1、Maven概述 Maven是专门用于…

时序预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)时间序列预测

时序预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)时间序列预测 目录 时序预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)时间序列预测预测效果基本介绍模型介绍PSO模型LSTM模型PSO-LSTM模型 程序设计参考资料致谢 预测效果 基本介绍 Matlab基于PSO-LST…

高压线路距离保护程序逻辑原理(四)

四、距离I段快速动作程序逻辑框图 距离保护的故障处理程序主要有三个组成部分&#xff1a;手合及I段快速跳闸部分&#xff1b;I、II段延时动作部分&#xff1b;跳闸及后加速部分。后者在第二章的保护故障处理程序中作为各类保护共有的程序分析过。这里只分析I段的程序逻辑框图…

360手机刷机 360手机Xposed框架安装 360手机EdXposed、LSP 360手机xposed模块

360手机刷机 360手机Xposed框架安装 360手机EdXposed、LSP 360手机xposed模块 参考&#xff1a;360手机-360刷机360刷机包twrp、root 360刷机包360手机刷机&#xff1a;360rom.github.io 【前言】 手机须Twrp或root后&#xff0c;才可使用与操作Xposed安装后&#xff0c;重启…

① RESTful API

1.API&#xff08;Application Programming Interface&#xff09; API就是一个接口&#xff1b;例如玩某一款游戏&#xff0c;你不必知道游戏具体的实现细节&#xff0c;只需要知道点哪个键是哪个技能就够了&#xff0c;而这个键之所以能实现玩家与游戏的交互&#xff0c;是因…

在个人电脑上部署ChatGLM2-6B中文对话大模型

简介 ChatGLM2-6B 是清华大学开源的一款支持中英双语的对话语言模型。经过了 1.4T 中英标识符的预训练与人类偏好对齐训练&#xff0c;具有62 亿参数的 ChatGLM2-6B 已经能生成相当符合人类偏好的回答。结合模型量化技术&#xff0c;用户可以在消费级的显卡上进行本地部署&…

亚马逊点击广告有什么好处?

亚马逊点击广告可以带来以下几个好处&#xff1a; 1、增加曝光和可见性&#xff1a;亚马逊点击广告可以将你的产品展示给更多潜在的购买者。通过有针对性的广告活动&#xff0c;你可以提高产品的曝光度&#xff0c;使更多的人看到你的产品。 2、提高点击率和流量&#xff1a;…

Python 代码打包

这里写目录标题 1. pyc打包及重调用2. Cython打包及重调用 1. pyc打包及重调用 该打包方式仅为入门级&#xff0c;反编译后为源代码&#xff0c;毫无安全性 指令转换 python -m py_compile /path/**.py 代码统一转换 单个py文件打包 import py_compile py_file ["/home/…

基于STM32设计的青少年学习监控系统(华为云IOT)

一、设计需求 1.1 项目背景 近几年,我国儿童青少年的近视发生率越来越高,生活中总会看到许多小小年纪就戴着眼镜的小朋友。家长对孩子的用眼时间没有约束,电子产品对孩子眼睛的影响,写字姿势,有的孩子写字时握笔太低,以致整个人趴在桌子上等都是造成孩子近视的重要因素…

c++ freetype 解析可变字体(Variable font)

什么是可变字体 上一篇文章说了 传送门也懒的贴了&#xff0c; 自己去翻吧 前言 我这里不会贴完整的代码 也不会说的那么细&#xff0c;主要提供一些关键点和方法 正文 ‘name’ 表table 解析 TrueType 字体的解析 字体里面有很多的表table 我们需要的family和style 都在这…

C++在线五子棋对战(网页版)项目:websocket协议

目标&#xff1a;认识理解websocket协议、websocket切换过程和websocket协议格式。认识和学会使用websocketpp库常用接口。了解websocketpp库搭建服务器流程&#xff0c;认识和学会使用websocketpp库bin接口&#xff0c;最后使用websocketpp库搭建服务器。 初识websocket WebS…

OJ# 384 敲七

题目描述 ​ 有 N 个人在玩一种“敲7”游戏&#xff0c;游戏的规则是这样的&#xff1a;第 x 个人从 t 开始报数&#xff0c;然后按顺序报数&#xff0c; 当某人报的数是 7 的倍数或数字中含有 7 时&#xff0c;便被淘汰&#xff0c;剩下的人继续报数&#xff0c;直到只剩下一…

【CesiumJS入门】(6)修改3D Tiles(tileset)的位置及高度

前言 在之前一篇博客中【CesiumJS入门】&#xff08;4&#xff09;加载3D Tiles并获取tileset&#xff0c;我们成功得加载了3D Tiles数据集&#xff0c;本篇中&#xff0c;将会向大伙儿介绍tileset位置的修改与恢复&#xff1a; 直接上代码了 /** Date: 2023-06-28 19:35:03*…