首页 > 编程语言 >深入浅出学算法001-计算复杂度

深入浅出学算法001-计算复杂度

时间:2024-11-23 15:01:42浏览次数:12  
标签:片段 int 复杂度 深入浅出 程序 else 001 printf

题目描述

算法复杂度一般分为:时间复杂度、空间复杂度、编程复杂度。 这三个复杂度本身是矛盾体,不能一味地追求降低某一复杂度,否则会带来其他复杂度的增加。在权衡各方面的情况下,降低时间复杂度成为本课程学习的重点之一。 请计算下面几个程序段的复杂程度,分别用1、logn、n、nlogn、n^2、n^3或2^n来表示

程序片段1:
x=x+1;


 

程序片段2:
for(k=1;k<=n;k++)
{
    x=x+1;
}


程序片段3: for(k=1,t=1;k<=n;k++) { t=t*2; for(j=1;j<=t;j++) x=x+j; }
程序片段4: for(k=1;k<=n;k++) { for(j=1;j<=k;j++) x=x+j; }
程序片段5: m=0; for(k=1,t=1;k<=n;k++) { t=t*2; for(j=t;j<=n;j++) m++; }
程序片段6: m=0; for(k=1;k<=n;k++) { for(j=1;j<=n;j++) m++; }
程序片段7: m=0; for(k=1;k<=n;k++) { for(j=1;j<=n;j++) for(i=1;i<=n;i++) m++; }

 

输入

多组测试数据,首先在第一行输入整数T表示提问次数 然后是T行,每行是1个整数,表示程序片段号

输出

对于每次提问,在1行输出对应程序片段对应的复杂程度(注意必须按前面提示的输出,注意大小写

样例输入 Copy
2
1
2
样例输出 Copy
1
n

上代码

#include <bits/stdc++.h>
using namespace std;
int main () {
	int t;
	scanf("%d", &t);
	while (t--) {
		int n;
		scanf("%d", &n);
		if (n == 1) printf("1\n");
		else if (n == 2) printf("n\n");
		else if (n == 3) printf("2^n\n");
		else if (n == 4) printf("n^2\n");
		else if (n == 5) printf("nlogn\n");
		else if (n == 6) printf("n^2\n");
		else if (n == 7) printf("n^3\n");
	}
	return 0;
}

标签:片段,int,复杂度,深入浅出,程序,else,001,printf
From: https://blog.csdn.net/sunyixuan123/article/details/143837415

相关文章

  • 深入浅出:SpringBoot启动流程源码分析(持续更新中......)最新日期:2024年10月29日
    Hello,大家好,我是此林。今天来深入底层讲一讲SpringBoot是如何启动的,也就是我们单击运行SpringBoot启动类,它底层发生了什么?SpringBoot启动类很简单,只有一行代码。我们点进run()方法。我们发现,它底层其实进行了两步操作。第一步是new出一个SpringApplication对象,第二个是......
  • 深入浅出理解BLE AUDIO CSIS
    CSIS是CoordinateSetsIdentificationservice,翻译过来就是协调集识别服务。什么是协调集,可以理解为具有相同特征的一伙设备,最典型的就是左右两个蓝牙耳机是一个协调集,所以它们具有相同的协调集标志,但是具有相同协调集的设备要如何识别,这就是本篇需要讲解的内容,其实还是比......
  • 算法复杂度
    文章目录一、算法复杂度的概念二、时间复杂度1.大O的渐进表示法三、空间复杂度提示:以下是本篇文章正文内容,下面案例可供参考一、算法复杂度的概念算法在编写成可执⾏程序后,运⾏时需要耗费时间资源和空间(内存)资源。因此衡量⼀个算法的好坏,⼀般是从时间和空间两......
  • 【深入浅出玩转FPGA】之FPGA配置模式
    FPGA配置模式XilinxUltraScaleFPGA有7种配置模式,由模式输入引脚M[2:0]决定。主串配置模式从串配置模式主并配置模式(8位或16位)从并配置模式(8位、16位或32位)主SPI配置模式主BPI配置模式JTAG/边界扫描配置模式1、主,即配置时钟CCLK由FPGA提供;从,即配置时钟CCLK由外部控制器提......
  • JavaWeb基于ssm的校园一卡通密钥管理系统(001)
    获取源码请滑到最底部访问官网项目配套调试视频和相对应的软件安装包1、项目描述具体请看视频演示2、项目开发工具开发工具:Idea或Eclipse数据库:MysqlJar包仓库:Maven前端框架:Vue2后端框架:SSM3、项目图片4、演示视频JavaWeb基于ssm的校园一卡通密钥管理系统(001)......
  • 03 线性结构——链表(逻辑与物理结构、分类、时间复杂度分析、相关功能定义与代码实现)
    目录1 链表是什么1.1 逻辑结构1.2物理结构1.3 相关概念2链表的分类2.1单链表2.2双链表2.3循环单链表2.4循环双链表2.5静态链表3链表的优缺点3.1优点3.2缺点3.3与数组的对比4功能定义5功能实现5.1初始化链表5.2返回链表的长度5.3在指定位......
  • 算法复杂度
    一.复杂度的概念算法编写成可执行程序后,需要耗费时间空间资源,衡量一个算法的好坏是从时间和空间两个维度衡量。时间复杂度衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。二.时间复杂度算法的时间复杂度是一个函数T(N),他定义了该算法运行的时间,时......
  • 代码圈复杂度计算——Lizard库
    代码圈复杂度计算——lizard库Lizard简介lizard是一个轻量级、多语言支持的代码复杂度分析工具,最常用于计算圈复杂度(CyclomaticComplexity)和代码行数。圈复杂度是衡量代码逻辑复杂性的一个常用指标,表示程序中独立执行路径的数量。圈复杂度越高,意味着代码中的条件分支越......
  • 带你深入浅出设计模式:十二、桥接模式:连接抽象与实现的桥梁
    此为设计模式第十二谈!用总-分-总的结构和生活化的例子给你讲解设计模式!码农不易,各位学者学到东西请点赞收藏支持支持!开始部分:总:桥接模式的本质是将抽象部分与它的实现部分分离,使它们都能独立地变化。分:1.老规矩,自行打开VS创建一个控制台应用程序2.实现编码,这里以汽车......
  • 带你深入浅出设计模式:十一、组合实体模式:软件世界的乐高积木
    此为设计模式第十一谈!用总-分-总的结构和生活化的例子给你讲解设计模式!码农不易,各位学者学到东西请点赞收藏支持支持!开始部分:总:组合模式的目的:让客户端不再区分操作的是组合对象还是叶子对象,都以一个统一的方式来操作。分:1.老规矩,自行在vs创建一个控制台应用2.实现......