算法简单试题

news2024/10/6 0:26:05

一、选择题
01.一个算法应该是(  B  ).
      A.程序                                                        B.问题求解步骤的描述        
      C.要满足五个基本特性                               D.A和C
02.某算法的时间复杂度为O(n²),则表示该算法的(  C  )。
     A,问题规模是n² (默认都是n)                        B.执行时间等于n²  <=k*n²
     C.执行时间与n²成正比                                 D.问题规模与n²成正比
解析:算法时间复杂度:O(F(n))意味着算法在任何情况下,规模为n时,所花费的时间<=k*F(n)
03.若某算法的空间复杂度为O(1),则表示该算法(  B  )。
     A,不需要任何辅助空间                                 B.所需辅助空间大小与问题规模n无关
     C.不需要任何空间                                        D.所需空间大小与问题规模n无关
04.下列关于时间复杂度的函数中,时间复杂度最小的是(  D  ).
    A.T_{1}(n)=nlog_{2}n + 5000n                   B.T_{2}(n)=n^{2}- 8000n
    C.T_{3}(n)= nlog_{2}n - 6000n                   D.T_{4}(n)= 20000log_{2}n
05.以下算法的时间复杂度为( D  ).

void fun(int n){  //n作为参数
        int i=1;

        while(i<=n)
                i=i*2;        //核心运算   

}


解析:核心操作是i=i*2;判断运算次数 ,即1*2*2*2乘多少次是n (2的几次方是n)

06.有以下算法,其时间复杂度为( C  ).

void fun (int n){
        int i=0;
        while(i*i*i<=n)
                i++;    //i通过++操作往后推进,是核心操作

}

             
解析:核心运算是i++,i*i*i仅用于逻辑判断,并没有“推进i”
当i*i*i>n时,则停止增加  即i = n开三次方

07.程序段如下:

for(i=n-1;i>1;i--)
        for(j=1;j<i;j++)
                if(A[j]>A[j+1])  //满足条件执行if
                        A[j]与A[j+1]对换;

其中n为正整数,则最后一行语句的频度在最坏情况下是(  D  )。

解析:冒泡排序的算法代码,所有相邻元素都为逆序时,最后一行的语句每次都会执行
08.下列程序段的时间复杂度为( A  )。

if(n>=0){
        for (int i=0;i<n;i++)
                for(int j=0;j<n;j++)
                        printf("输入数据大于或等于零\n");
}
else{
        for(int j=0;j<n;j++)
                printf("输入数据小于零\n");

09.以下算法中加下画线的语句的执行次数为( A  )。  m++的执行次数

int m=0,i,j;
for(i=1;i<=n;i++)
        for(j=1;j<=2*i;j++)
                m++;

     A. n(n+1)                        B.n                                C. n+1                            D. n²
10.下列函数代码的时间复杂度是(  C )。

int Func(int n){
        if(n==1)

                return 1;
        else

                return 2* Func(n/2)+n;

11.【2011统考真题】设n是描述问题规模的非负整数,下列程序段的时间复杂度是( A )

x=2;  //初值
while(x<n/2) //结束条件

        x=2*x;  //执行操作


解析:x=2*2*2*....乘多少次2达到n
12.【2012统考真题】求整数n(n≥0)的阶乘的算法如下,其时间复杂度是(  B  )。

int fact(int n){
        if(n<=1)

                return 1;

return n*fact (n-1);  //递归程序


解析:程序就是一个递归,整个程序的基础操作只有递归处有乘法,一次递归是一次乘法运算,值为n的情况下递归嵌套n次

13.【2014统考真题】下列程序段的时间复杂度是(  C  )。

count=0;
for(k=1;k<=n;k*=2) 

        for(j=1;j<=n;j++)
                count++;


解析:第一层:k的取值分别是1,2,4,8...一直到n:log2n次循环
第二层:无论k的取值是多少,第二层都是自加n次

14.【2017统考真题】下列函数的时间复杂度是(  B ).

int func (int n){
        int i=0,sum=0;
        while(sum<n)

                sum += ++i;

         return i;
)

解析:核心操作:sum+=++i; sum的变化过程:0+1+2+3....+i ,当sum<n时跳出循环,判断i加了几次,求和公式为sum=i*(i-1)/2<n,根据数量级可以把左边看成i²,即i²<n ,所以i=n的二分之一次方
15.【2019统考真题】设n是描述问题规模的非负整数,下列程序段的时间复杂度是(  B )。

x=0;
while (n>=(x+1)*(x+1))

x=x+1;


解析:(x+1)²<=n ,根据同阶数量级可以看成x²<n 即x趋向于根号n

16.【2022统考真题】下列程序段的时间复杂度是(  B  )。

int sum=0;
for(int i=l;i<n;i*=2)
       for(int j=0;j<i;j++)
                sum++;


解析:求出sum++的执行次数 
第一层:i=1,2,4,8...2的k次方
第二层:j<i,所以j有0~i-1个
1+2+3+....+2的k次方 = 2的k+1次方-1<2n

二、综合应用题

01.分析以下各程序段,求出算法的时间复杂度。

①        i=1;k=0;
           while(i<n-1){
                k=k+10*i;

                i++;
②        y=0;
           while((y+1)*(y+1)<=n)
            y=y+1;
③        for(i=0;i<n;i++)
                for(j=0;j<m;j++)
                        a[i][j]=0;

①基本语句k=k+10*i共执行了n-2次,所以T(n)= O(n)。
②设循环体共执行t次,每循环一次,循环变量y加1,最终t=y。故t²≤n,得T(n)=O(n1/2)。
③内循环执行m次,外循环执行n次,根据乘法原理,共执行了mxn次,故T(m, n)=O(mxn)。 

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

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

相关文章

【高效开发工具系列】vimdiff简介与使用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

领取阿里云服务器1888元优惠券,如何登录云主机?

点击左上角“请登录” 首先点此领取阿里云服务器1888元优惠券 这样就登录成功了。 如果您没有淘宝帐号&#xff0c;可以自行注册一个。 登录成功后&#xff1a; 很多人进入阿里云首页告诉我找不到购买云主机的地方。 点击云服务器ECS即可找到。 付款后&#xff0c;登录阿里云…

期货开户交易切勿满仓操作

平时我们交易主要是仓位管理风险&#xff0c;切勿不要满仓操作&#xff0c;满仓相当于一锤子买卖&#xff0c;我们做交易要有交易计划&#xff0c;计划中除了开仓点.止损点.止盈点外&#xff0c;还有加仓点&#xff0c;所以我们要留下充足的加仓仓位&#xff0c;有很多投资者是…

传感器在TWS耳机中的应用

一项音频产品使用报告显示&#xff0c;消费者对音频设备中音质差异的认知不断提高&#xff0c;对在设备上获得最佳音频体验的期待也在提升。自适应主动降噪、语音增强、空间音频等是提升TWS耳机用户体验的主要因素&#xff0c;这些技术背后都有运动传感器的身影&#xff0c;包括…

一文搞定Kafka安装和配置(Windows)

一文搞定Kafka安装和配置(Windows) 概述 Kafka是一个分布式发布-订阅消息系统和一个强大的队列&#xff0c;可以处理大量的数据&#xff0c;并使您能够将消息从一个端点传递到另一个端点&#xff0c;Kafka适合离线和在线消息消费&#xff0c;Kafka消息保留在磁盘上&#xff0c…

2024/3/6打卡最短编辑距离---线性DP

题目&#xff1a; 给定两个字符串 A 和 B&#xff0c;现在要将 A 经过若干操作变为 B&#xff0c;可进行的操作有&#xff1a; 删除–将字符串 A 中的某个字符删除。插入–在字符串 A 的某个位置插入某个字符。替换–将字符串 A 中的某个字符替换为另一个字符。 现在请你求出&a…

Draft-P802.11be-D3.2协议学习__$Annex-Z-HE-SIG-B-and-EHT-SIG-content-examples

Draft-P802.11be-D3.2协议学习__$Annex-Z-HE-SIG-B-and-EHT-SIG-content-examples Z.1 GeneralZ.2 HE-SIG-B example 1Z.3 HE-SIG-B example 2Z.4 HE-SIG-B example 3Z.5 HE-SIG-B example 4Z.6 EHT-SIG example 1&#xff08;EHT OFDMA 80MHz&#xff09;Z.7 EHT-SIG example …

Java两周半速成之路(第十一天)

集合 1.概述&#xff1a; &#xff08;1&#xff09;为什么出现集合类&#xff1f; 面向对象语言对事物的体现都是以对象的形式&#xff0c;所以为了方便对多个对象的操作&#xff0c;Java就提供了集合类。 &#xff08;2&#xff09;数组和集合类同是容器&#xff0c;有何…

【Godot4自学手册】第二十节增加游戏的打击感,镜头震颤、冻结帧和死亡特效

这节我主要学习增加游戏的打击感。我们通过镜头震颤、冻结帧、增加攻击点特效&#xff0c;增加死亡。开始了。 一、添加攻击点特效 增加攻击点特效就是&#xff0c;在攻击敌人时&#xff0c;会在敌人受击点显示一个受击动画。 1.添加动画。 第一步先做个受击点动画。切换到…

鲸鱼优化算法(WOA)优化随机森林回归预测(RF)

WOA-RF回归 鲸鱼优化算法(WOA)优化随机森林回归预测&#xff08;RF&#xff09; 可以更换算法和替换成自己需要预测的数据集 实验结果如下

PAT——1020月饼(python)

题目要求 题目思路 计算每种月饼的均价&#xff0c;优先卖出均价最高的月饼计算总价格&#xff0c;需要注意&#xff0c;当全部月饼都不够需求时&#xff0c;价格就是当前总价格 题目代码&#xff08;python&#xff09; def mooncake(cakelist,need_cake): # 输入月饼信…

Leetcode 239:滑动窗口最大值

题意 大小为 k 的滑动窗口从整数数组 nums 的最左侧移到最右侧&#xff0c;只能看到滑动窗口中的 k 个数字&#xff0c;窗口每次向右移动一位。 返回滑动窗口的最大值。 示例 1&#xff1a; 输入&#xff1a;nums [1,3,-1,-3,5,3,6,7], k 3 输出&#xff1a;[3,3,5,5,6,7] …

Common Sense Machines(CSM):立志成为图像生成适用于游戏引擎的3D资产AI产品

详细说明 Common Sense Machines&#xff08;CMS&#xff09;&#xff1a;立志成为图像生成适用于游戏引擎的3D资产AI产品-喜好儿aigc详细说明&#xff1a;https://heehel.com/CSM-3d 官方网站&#xff1a;https://www.csm.ai/ 使用体验网址&#xff1a;https://3d.csm.ai/ 来…

stable diffusion的额外信息融入方式

conditioning怎么往sd中添加&#xff0c;一般有三种&#xff0c;一种是直接和latent拼一下&#xff0c;另外很多是在unet结构Spatialtransformers上加&#xff0c;和文本特征一样&#xff0c;通过cross-attention往unet上加&#xff0c;这里还需要注意一点&#xff0c;在文本嵌…

就业班 2401--3.5 Linux Day11--DNS解析

DNS域名解析服务 少壮不努力&#xff0c;老大徒伤悲。一、 1.DNS介绍 DNS 是域名系统 (Domain Name System) 的缩写&#xff0c;是因特网的一项核心服务&#xff0c;它作为可以将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便的访问互联网&#xff0c;…

MySQL 空间碎片详解

文章目录 前言1. 空间碎片如何产生2. 空间碎片如何查看3. 空间碎片如何回收后记 前言 MySQL 数据库在运行过程中&#xff0c;随着时间的推移&#xff0c;可能会出现空间碎片的问题。空间碎片是指数据库表中不再使用的空间&#xff0c;但由于各种原因&#xff0c;这些空间并没有…

集简云SDK嵌入支持传值,支持通过接口创建和管理流程

集简云SDK嵌入方案&#xff0c;允许开发者将集简云的产品功能直接嵌入到自己的产品中&#xff0c;用户无需单独注册或登录集简云&#xff0c;即可在第三方产品内使用集简云提供的功能。 目前&#xff0c;SDK嵌入方案已支持传值功能&#xff0c;通过SDK嵌入&#xff0c;可以在创…

电子电器架构刷写策略 —— 队列刷写

电子电器架构刷写策略 —— 队列刷写 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己…

嵌入式面试

1.关键字static的作用是什么&#xff1f;为什么static变量只初始化一次&#xff1f; 1&#xff09;修饰局部变量&#xff1a;使得变量变成静态变量&#xff0c;存储在静态区&#xff0c;存储在静态区的数据周期和程序相同&#xff0c; 在main函数开始前初始化&#xff0c;在退…

Wireshark_labs TCP

在本实验中&#xff0c;我们将详细研究著名的TCP协议的行为。我们将通过从您的电脑向远程服务器传输一份150KB 的文件(一份Lewis Carrol 的“爱丽丝梦游仙境”文本)&#xff0c; 并分析TCP传输内容的发送和接收过程来实现。我们将研究TCP对序列和确认号的使用&#xff0c;以提供…