算法与数据结构介绍

news2024/11/24 14:42:40

算法与数据结构介绍

算法和数据结构不受语言限制,每种编程语言都有关于自己的实现

算法

什么是算法

算法是指解题方案的准确而完整的描述,算法是一系列解决问题的清晰指令,算法使用系统的方法来解决问题的机制。

算法作用

对于实际业务(包括底层框架设计,或者实际系统设计)中,针对某些功能实现,不能一直用笨方法来实现,需要一些高级的算法,来对系统功能进行优化,提高系统性能。

例如:对一串数字进行排序,什么场景下适合用什么样的排序最高效,不能一味的循环,这样会导致性能的下降,这样就衍生出了各种排序算法,在合适的情况下使用合适的算法,才是最佳方案。

数据结构

什么是数据结构

数据结构是计算机存储、组织数据的方式。

数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。

数据结构反映数据的内部构成,即数据由那部分构成,以什么方式构成,以及数据元素之间呈现的结构。

数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,经过这些运算后所得到的新结构是原来的结构类型。

数据结构主要分两种

线性数据结构=》连续地址

img

散列数据结构=》非连续地址

img

数据结构作用

用合适的结构存储数据,压缩空间,是空间利用最大化,数据存储效果最大化。

系统通常的优化方案

在时间和空间上考虑

没有满足空间和时间都节省情况就根据实际要求做

  1. 空间换时间
  2. 时间换空间

时间复杂度

时间复杂度的意义:衡量算法流程的一种指标,此指标只与数据量有关,与过程之外的优化无关。

时间复杂度计算:时间负责都只关注最高项,不关注其他项与常数项,在样本量很大很大时,会直接影响效率的只有最高阶项,其他(包括常数项,低阶项,每一项的系数)都不重要

O(2N^2 + N + 1)

在当前例子中 N越大,直接影响因素只有 2N^2 同时系数 2 是常量 不起决定因素,所以起决定因素的是N^2 所以时间复杂度为 O(N^2)

额外空间复杂度

实现一个算法必然要开辟一些额外的空间来支持算法的流程

额外空间复杂度计算标注

  • 输入参数的空间,不参与计算
  • 返回参数的空间,不参与计算

除此之外如果还需要开辟额外的空间来参与计算,那一部分,才是额外空间复杂度

但是如果你开辟的空间进食有限的几个变量,额外空间复杂度也是O(1)


时间负责度与空间复杂度的计算会在当前专栏中后续数据结构与算法的介绍中穿插介绍

点个赞呗
请添加图片描述

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

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

相关文章

Kamiya丨Kamiya艾美捷大鼠成纤维细胞生长因子2说明书

Kamiya艾美捷大鼠成纤维细胞生长因子2,碱性(FGF2)ELISA预期用途: 该试剂盒是一种夹心酶免疫分析法,用于在体外定量测量大鼠FGF2血清、血浆、组织匀浆、细胞裂解物、细胞培养上清液和其他生物液体。对于仅供研究使用。…

laravel vue tailwind normalize

下载laravel最新7.x composer create-project --prefer-dist laravel/laravle blog 7.x-dev cd blog valet link blog valet links blog.test 测试通过后,开始安装tailwind npm i npm i tailwindcss autoprefixer postcss7 都是最新版应该也没有什么问题 在根目录下…

CSS自定义属性与前端页面的主题切换

基于级联变量的CSS自定义属性,已经出来很多年了。 虽然有less、sass等预处理器大行其道,但是自定义属性也有它的特点和用处,诸如在js中读写、作用域设置等等,在处理UI主题切换等功能上也发挥着很大的作用。 自定义属性 CSS自定义…

电影《乌云背后的幸福线》观后感

首先感谢同学推荐这部电影,以前没看过这部电影《乌云背后的幸福线》,看完之后一点想法,希望你能给点启发吧,整部电影讲述一对分别离异的男女再次相爱的故事。打个比方,就好像因为感情不和的小王夫妇离婚了,…

【Spring源码系列】Spring扫描-@ComponentScan底层原理解读

这里写目录标题前言一、ComponentScan注解介绍ComponentScan作用ComponentScan重要参数二、ComponentScan源码分析声明关键点源码解读Spring扫描流程图前言 先不废话了,直接干吧。 一、ComponentScan注解介绍 ComponentScan作用 ComponentScan注解的作用可以简述…

一文搞懂PKI/CA

PKI1. 信息安全1. 1 主要攻击形式1.2 信息安全的目标2. PKI2.1 基本概念2.2 PKI的组成3. 数字证书3.1 基本概念3.2 证书的生成与验证3.3 证书链3.4 证书管理4. 时间戳服务1. 信息安全 随着数字经济、互联网金融、人工智能、大数据、云计算等新技术新应用快速发展,催…

GIS工具maptalks开发手册(二)02——渲染线

GIS工具maptalks开发手册(二)02——渲染线 效果 1、html版本 LineString.html <!DOCTYPE html> <html> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1"> <title>图形…

Redis 的 Java 客户端(Jedis、SpringDataRedis、SpringCache、Redisson)基本操作指南

Jedis 参考&#xff1a; Jedic 官方文档Jedis 托管在 github 上的源码 Redis 不仅是使用命令来操作&#xff0c;现在基本上主流的语言都有客户端支持&#xff0c;比如 java、C、C#、C、php、Node.js、Go 等。在官方网站里列一些 Java 的客户端&#xff0c;有 Jedis、Redisso…

CentOS 7 不显示ip

使用ip add或ifconfig插件看网络信息 进入文件夹/etc/sysconfig/network-scripts 修改对应的ens33网卡的配置文件&#xff0c;默认请工况下CentOS 7不启动网卡&#xff08;ONBOOTno&#xff09; 修改vim ifcfg-ens33中的ONBOOTno为ONBOOTyes 重启服务&#xff1a;service netwo…

【蓝桥杯省赛真题14】python围圈报数 青少年组蓝桥杯python编程省赛真题解析

目录 python围圈报数 一、题目要求 1、编程实现 2、输入输出 3、评分标准

2023年,想要靠做软件测试获得高薪,还有机会吗?

时间过得很快&#xff0c;一眨眼&#xff0c;马上就要进入2023年了&#xff0c;到了年底&#xff0c;最近后台不免又出现了经常被同学问道这几个问题&#xff1a;2023年还能转行软件测试吗&#xff1f;零基础转行可行吗&#xff1f; 本期小编就“2023年&#xff0c;入行软件测…

centernet的数据增强操作--仿射变换

centernet论文与代码剖析_无左无右的博客-CSDN博客_centernet原论文blogfirst_rank_ecpm_v1~rank_v31_ecpm-3-110164808-null-null.nonecase&utm_termcenternet&spm1018.2226.3001.4450 其实在这里也分析过。奈何当初写的代码不知道哪里去了&#xff1b; 本文原地址&am…

Java学习之方法重写/覆盖

目录 一、方法重写的概念 二、入门案例 三、使用细节 第一条 第二条 第三条 一、方法重写的概念 方法覆盖(重写)就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法覆盖了父类的方法 注释&#xff1a;包括直接继承和简介继承&…

连接阿里云MaxCompute数据源报错504 Gateway Time-out

背景 经济下行的大环境下&#xff0c;很多公司都在做出海业务&#xff0c;即把海外人民做为服务对象。我司亦不例外。最近在全职负责的一款数据产品&#xff0c;也需要在菲律宾&#xff08;马尼拉&#xff09;也部署一个站点。 站点部署成功&#xff0c;看起来一切顺利。既然…

k8s网络插件之Calico

Calico简介 Calico官方文档&#xff1a;https://projectcalico.docs.tigera.io/getting-started/kubernetes/quickstart Calico是一套开源的网络和网络安全解决方案&#xff0c;用于容器、虚拟机、宿主机之前的网络连接&#xff0c;它是一个纯三层的虚拟化网络解决方案&#…

Springboot毕业设计毕设作品,心理评测系统设计与实现

功能清单 【后台功能】 系统设置&#xff1a;设置关于我们、联系我们、加入我们、法律声明 广告管理&#xff1a;设置小程序首页轮播图广告和链接 留言列表&#xff1a;所有用户留言信息列表&#xff0c;支持删除 会员列表&#xff1a;查看所有注册会员信息&#xff0c;支持删…

QT笔记——vs中的qt项目 可调试源码

环境&#xff1a;vs2019 qt 5.12.2 1&#xff1a;首先我们需要选择我们的源码路径 右键解决方案-》属性-》通用属性-》调试源文件-》在窗口内添加QT下载时的源码**.src文件夹** 2.下载对应QT版本的PDB文件 http://download.qt.io/online/qtsdkrepository/windows_x86/desktop/…

PG第十一章-基准测试与 pgbench

性能基准线称为基准测试 一&#xff1a;关于基准测试 影响的关键因素有&#xff1a; 硬件&#xff0c;如服务器配置、 CPU 内存、存储&#xff0c;通常硬件越高级&#xff0c;系统的性能越好&#xff1b;网络&#xff0c;带宽不足也会严重限制系统整体性能表现&#xff1b;负…

双十二购买护眼台灯亮度多少合适?灯光亮度多少对眼睛比较好呢

现在越来越多的孩子近视情况严重&#xff0c;走在大街上&#xff0c;普遍都能见到大多数孩子都戴着眼镜&#xff0c;这不仅与我们的生活习惯、饮食健康有关&#xff0c;也受照明环境的影响&#xff0c;所以很多家长为了孩子的视力健康&#xff0c;开始使用护眼台灯来照明了。 …

短信服务调研

调研新技术方案的一般步骤&#xff1a; 列出所有竞品&#xff0c;根据品牌、功能、价格&#xff0c;选择最合适的一个购买或试用服务查阅相关文档和配置要单独写一个demo&#xff0c;体验一下 竞品有&#xff1a;七牛云、阿里云、网易云、腾讯云 本次选择为腾讯云&#xff1a…