算法分析基础题目

第一章-算法概述

  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 -1middle = (low + high) / 2if (x == s[middle]):return middleelif(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 -1middle = ___; //分解if (x == s[middle]):return middleelif(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 numreturn  Fibonacci(num-1)+Fibonacci(num - 2)
  1. 下面代码为求n!的递归算法,该代码反应的n!问题递归实现的停止条件(边界条件)为当n=1时n!=1

    def fun(n):if (n == 1):return 1else :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.hqwc.cn/news/3694.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[RocketMQ] Producer发送消息的总体流程 (七)

单向发送: 把消息发向Broker服务器, 不管Broker是否接收, 只管发, 不管结果。同步发送: 把消息发向Broker服务器, 如果Broker成功接收, 可以得到Broker的响应。异步发送: 把消息发向Broker服务器, 如果Broker成功接收, 可以得到Broker的响应。异步所以发送消息后, 不用等待, 等…

LLaMA模型微调版本:斯坦福 Alpaca 详解

项目代码&#xff1a;https://github.com/tatsu-lab/stanford_alpaca 博客介绍&#xff1a;https://crfm.stanford.edu/2023/03/13/alpaca.html Alpaca 总览 Alpaca 是 LLaMA-7B 的微调版本&#xff0c;使用Self-instruct[2]方式借用text-davinct-003构建了52K的数据&#x…

vue3框架开发uniapp高仿度小满金融App项目

vue3框架开发uniapp高仿度小满金融App项目 心血来潮写了度小满前端项目使用vue3开发地址&#xff1a;度小满金融 下面是实现效果

第一次安装cocoapods经历

先是执行&#xff1a;sudo gem install cocoapods 报错&#xff1a; ERROR: Error installing cocoapods: The last version of activesupport (> 5.0, < 8) to support your Ruby & RubyGems was 6.1.7.3. Try installing it with gem install activesupport -v…

CSS 备忘录2-动画、渐变、颜色、选择器等

1、背景 background属性是八个属性的简写形式&#xff1a; background-image 指定一个文件或生成的颜色渐变作为背景图片background-position 设置图片的初始位置background-size 指定背景图片的渲染尺寸background-repeat 是否平铺图片ba…

智能相机的功能介绍

智能视觉检测相机主要是应用在工业检测领域图像分析识别、视觉检测判断。相机具有颜色有无判别、颜色面积计算、轮廓查找定位、物体特征灰度匹配、颜色或灰度浓淡检测、物体计数、尺寸测量、条码二维码识别读取、尺寸测量、机械收引导定位、字符识别等功能。相机带有HDMI高清视…

Java版企业电子招投标系统源码 Spring Cloud+Spring Boot 电子招标采购系统功能清单

一、立项管理 1、招标立项申请 功能点&#xff1a;招标类项目立项申请入口&#xff0c;用户可以保存为草稿&#xff0c;提交。 2、非招标立项申请 功能点&#xff1a;非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点&#xff1a;对草稿进行编辑&#x…

电脑键盘点击记录

这里写自定义目录标题 通过敲击键盘&#xff0c;记录键盘按键&#xff0c;并记录下来&#xff0c;保存在电脑一个路径下&#xff0c;txt文档格式记录 通过敲击键盘&#xff0c;记录键盘按键&#xff0c;并记录下来&#xff0c;保存在电脑一个路径下&#xff0c;txt文档格式记录…

English Learning - L3 纠音 W8 Lesson7 Ted Living Beyond Limits 2023.06.27 周二

朗读内容&#xff1a; Lesson 7 Day 47 - 51 句子 Ted Living Beyond Limits 3-22

kafka入门,Kafka 副本(十三)

Kafka副本 副本基本信息 1&#xff09;Kafka副本作用&#xff0c;提高数据可靠性 2&#xff09;Kafka默认副本1个&#xff0c;生产环境一般配置2个&#xff0c;保证数据可靠性&#xff0c;太多副本会增加磁盘存储空间&#xff0c;增加网络上数据传输&#xff0c;降低效率 3&a…

Kafka最基础使用

一、概念 2、应用场景 异步处理系统解耦流量削峰日志处理 3、消息队列的两种模式 点对点模式 消息发送者生产消息发送到消息队列中&#xff0c;然后消息接收者从消息队列中取出并且消费消息。消息被消费以后&#xff0c;消息队列中不再有存储&#xff0c;所以消息接收者不可…

【爬虫】对某某贴吧主页的爬虫分析+源码

1. 网站分析 想要的内容有标题、时间和帖子跳转链接 查看网站源代码&#xff0c;发现想要的内容就在里面&#xff0c;那就好办了&#xff0c;直接上正则&#xff0c;当然beautifulsoup也不是不可以 2. Python源码 import requests import re from prettytable import PrettyTa…