数据结构---作业1时间复杂度

news2025/1/18 13:52:05

本专栏是对自我的平时作业错题及掌握知识不牢固的地方的总结专栏.

1.大O是一个渐进表示法,不会去表示精确的次数,cpu的运算速度很快,估计精确的没有意义。
2.
在这里插入图片描述
此函数有一个循环,但是循环没有被执行n次,i每次都是2倍进行递增,所以循环只会被执行log2(n)次。
3.
在这里插入图片描述
此函数会被递归调用n - 1次,每次操作都是一次,所以时间复杂度为n
4.

在这里插入图片描述
此题目中,数组元素有序,所以a,b两个数可以分别从开始和结尾处开始搜,根据首尾元素的和是否大于sum,决定搜索的移动,整个数组被搜索一遍,就可以得到结果,所以最好时间复杂度为n
5.
在这里插入图片描述
T(n)

=T(n-1)+n

=T(n-2)+(n-1)+n

=T(n-3)+(n-2)+(n-1)+n

=T(0)+1+2+…+(n-2)+(n-1)+n

=1+1+2+…+(n-2)+(n-1)+n

从递推公式中可以看到,第n项的值需要从n-1开始递归,一直递归到0次结束,共递归了n-1次

所以时间复杂度为n

6.
在这里插入图片描述
在这里插入图片描述
使用三次逆转法
第一次:整个数组的元素逆转一遍
第二次:逆转子数组
第三次:逆转另一个子数组

(1)标准答案:注意begin,end都是逆转的数组的下标


void reverse(int* nums, int begin, int end)
{
    while (begin < end)
    {
        int tmp = nums[begin];
        nums[begin] = nums[end];
        nums[end] = tmp;

        ++begin;
        --end;
    }
}
void rotate(int* nums, int numsSize, int k) {
    if (k > numsSize)
    {
        k %= numsSize;
    }

    reverse(nums, 0, numsSize - 1);
    reverse(nums, 0, k - 1);
    reverse(nums, k, numsSize - 1);
}

在这里插入图片描述
(2)我的答案:begin,end都表示的是指针

void reverse(int* begin, int* end ) {
	while (begin < end) {
		int temp = *begin;
		*begin = *end;
		*end = temp;
		begin++;
		end--;
	}

}
void rotate(int* arr,int sz, int k) {
	k = k % sz;

	reverse(arr, arr + sz - 1);
	reverse(arr, arr + k - 1);
	reverse(arr + k, arr + sz - 1);
}

在这里插入图片描述

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

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

相关文章

再不转型为ChatGPT程序员,有遭受降维打击的危险

Open AI在演示GPT-4的时候&#xff0c;有这么一个场景&#xff1a;给一个界面草图&#xff0c;就可以生成网页代码。这个演示非常简单&#xff0c;如果界面原型比较复杂呢&#xff1f;像这样&#xff1a;ChatGPT能不能直接生成HTML, CSS,JavaScript代码&#xff0c;把这个网页给…

【MySQL】表的约束

前言 hi~大家好呀&#xff0c;欢迎来到我的MySQL学习笔记系列~ 继上次数据类型的描述&#xff0c;这篇笔记重点记录DDL-数据定义语言对表的结构中的其他约束条件进行说明&#xff0c;以便让关系型数据库真正的保持完整性。 我的上一篇MySQL笔记~ 【MySQL】表的操作和数据类型_柒…

OpenCV实战之人脸美颜美型(七)——美颜demo

前言 之前我们已经完成了人脸检测、肤色检测、磨皮、美白功能,这一篇文章中我们将尝试利用OpenCV中的滑动条对象,结合窗口制作一个简单的demo。demo中会将上述功能集成进来,并通过滑动条来调整美白、磨皮力度观察其效果,先放一张效果图如下。 滑动条 OpenCV中可通过crea…

【Fluent】Run can not be started until validation issues are resolved.

一、问题背景 因为在fluent中用Discard Data, Replace Mesh选项替换了网格&#xff0c;但是没有抛弃算例设置等参数。 当时我以为网格是完全一样的&#xff0c;便忽略了产生冲突/错误的可能。 之后在calculate的时候&#xff0c;报错&#xff1a;Run can not be started unt…

联盟链是虚构的?没有用的?用FISCO BCOS来展示链委员这件事

前言 当前区块链大都使用的是投票决定这种方法&#xff0c;但是如何使现实中的投票转换到区块链中&#xff0c;如何让举手表决变得更加智能&#xff0c;如何让投票透明、安全、权威&#xff0c;这是区块链的一大设计思路&#xff0c;有很多人觉得联盟链是个梦&#xff0c;是个虚…

分享一个国内可用的免费ChatGPT网站

背景 ChatGPT作为一种基于人工智能技术的自然语言处理工具&#xff0c;近期的热度直接沸腾&#x1f30b;。 作为一个程序员&#xff0c;我也忍不住做了一个基于ChatGPT的网站&#xff0c;免费&#xff01;免登陆&#xff01;&#xff01;国内可直接对话ChatGPT&#xff0c;也…

十年磨一剑,你要的低代码平台在这里

目录低代码平台现状没有创新的“拼凑”&#xff0c;没有好东西ivx平台是什么ivx与其他平台的区别产品思路不同用户不同学习价值不同应用范围不同有无框架限制总结低代码开发平台已成为企业数字化转型和应用程序开发的重要工具。它们提供了一种快速创建和部署应用程序的方法&…

【MySQL】DDL数据库、表的创建与管理

一、基本概念 1、从系统架构的层面来看&#xff0c;数据库从大到小依次是数据库服务器(上面安装了DBMS和数据库)、数据库(也称database或者schema)、数据表、数据表的行与列 二、创建和管理数据库 1、创建数据库 直接创建&#xff1a;CREATE DATABASE 数据库名;(使用默认的…

这篇文章价值很大:股票历史分时成交数据怎么简单获取?【干货】

文章目录前言一、准备二、使用步骤1.引入库2&#xff0c;使用这个API查询历史分时数据&#xff1a;3.查询完整历史分时数据4.其他查询方法参数格式&#xff1a;[(市场代码, 股票代码), ...]参数&#xff1a;市场代码, 股票代码, 文件名, 起始位置, 数量参数&#xff1a;市场代码…

【MySQL】(3)约束

文章目录表的约束空属性默认值列描述zerofill主键概念使用 alter 添加和删除主键联合主键如何设计主键自增长唯一键外键表的约束 所谓约束&#xff0c;就是不让你做某事&#xff0c;约束的存在&#xff0c;有助于程序员和用户合法合理地使用数据库。 数据类型其实就是对字段的…

【C++】位图的概念

文章目录位图的引入什么是位图位图的应用bitset的使用定义方式成员函数bitset的运算符重载>> 及 << 运算符赋值,关系,复合赋值,单目运算符[]重载位图的引入 无序的40亿个不重复的无符号整数,给一个无符号整数,如何判断一个数是否在这40亿个数中【腾讯面试题】 方法…

记一次浏览器下载错误处理-失败网络错误

背景 最近在自己电脑上Chrome浏览器正常使用&#xff0c;但只要是下载软件&#xff0c;就会在下载几十秒后&#xff0c;自动停止&#xff0c;报失败-网络错误&#xff0c;导致文件都下载不成功&#xff0c;如下图。 猜测是更改了哪块的配置&#xff0c;导致一直中断&#xff0…

28岁,终于从字节退休了...

大厂一直是每个程序员都向往职业目标&#xff0c;大厂意味着薪资高、福利好、倍有面儿&#xff0c;而且发展空间也大。甚至有人调侃不想进大厂的程序员不是好程序员。 而在网上&#xff0c;也有各个网友分享自己在大厂的经历&#xff0c;在某平台还有一个近2600万浏览的话题&a…

JavaEE——了解Spring,容器,Ioc,DI相关概念

目录 一、Spring 是什么 二、什么是容器 三、什么是loC 1. 什么是 IoC 2. 传统程序开发和控制反转式程序开发 (1). 传统程序开发 (2). 控制反转式程序开发 (3). 对比 3. Spring的功能 4. 将对象存放到容器中的好处 四、DI概念说明 IoC和DI的联系和区别&#xff1f;…

算法 贪心1 || 455.分发饼干 376. 摆动序列 53. 最大子数组和

基础知识 什么是贪心&#xff1a;贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 但是贪心没有套路&#xff0c;做题的时候&#xff0c;只要想清楚 局部最优 是什么&#xff0c;如果推导出全局最优&#xff0c;其实就够了。 455.分发饼干 很容易想到&am…

Emlog底部显示当前在线人数

第一步&#xff1a;在模板文件里面创建“visitor.php”的文件吧下面代码入进去 code <?php//首先你要有读写文件的权限&#xff0c;首次访问肯不显示&#xff0c;正常情况刷新即可$online_log "slzxrs.dat"; //保存人数的文件到根目录,$timeout 30;//30秒内没…

计算机视觉__基本图像操作(显示、读取、保存)

计算机视觉__基本图像操作&#xff08;显示、读取、保存&#xff09; 本文目录&#xff1a; ✨ 一、前言 ✨ 二、图像显示&#xff08;使用OpenCV和Matplotlib显示图像&#xff09; &#xff08;1&#xff09;、使用OpenCV显示图像 &#xff08;2&#xff09;、使用Matplotl…

密集场景下的行人跟踪替代算法,头部跟踪算法 | CVPR 2021

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky LiEmail : 3435673055qq.com Time of completion&#xff1a;2023.4.8 Last edited: 2023.4.8 目录 摘要 主要内容 结果 这篇文章是CVPR 2021 的最新论文&#xff0c;文章的标题&#xff1a; 文章的主要内…

C#,数值计算的进化与发展——FORTRAN 77/80/95源程序 转C# 源程序的软件F2C#

1 F2C#FORTRAN 77/80/95源程序 转C# 源程序的软件 1.1 F2C#起源 全世界科学计算领域在超过40年的时间里累积了巨大数量的FORTRAN源程序&#xff08;尤其以FORTRAN77居多&#xff09;&#xff0c;实际上目前的许多大型科学软件还是以这些代码为基础的。众所周知的原因&#xf…

【youcans的深度学习 06】PyTorch入门教程:张量的基本操作

欢迎关注『youcans的深度学习』系列&#xff0c;持续更新中… 【youcans的深度学习 01】安装环境之 miniconda 【youcans的深度学习 02】PyTorch CPU版本安装与环境配置 【youcans的深度学习 03】PyTorch CPU版本安装与环境配置 【youcans的深度学习 04】PyTorch入门教程&#…