数据结构:基础概念

一、相关概念

概念

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

逻辑结构

集合:所有数据在同一个集合中,关系平等
线性:数据和数据之间一对一的关系
树: 一对多
图:多对多

物理结构(在内存当中的存储关系)

顺序存储:数据存放在连续的存储单位中(数组),逻辑关系和物理关系一致
链式:数据存放的存储单位随机或任意的,可以连续也可以不连续

数据结构术语

struct Per 数据元素
{
      char name;//数据项—>给变量赋予意义
      int age;
      char phone;
}    
            
    struct Per list[100]; //数据对象-->数据元素的集合(数据结构数组)

1.数据的类型

ADT    abstruct datatype 
是指一组性质相同的值的集合定义在此集合上的一些操作的总称。
原子类型:int,char,float
结构类型:struct,union

抽象数据类型:数学模型 + 操作 --->ADT     

2.程序

程序 =  数据 + 算法

算法

解决特定问题求解步骤的描述,计算机中表现为指令的有限序列,每条指令表示一个或多个操作。 

算法的特征

1.输入,输出特性:输入时可选的,输出时必须的
2.有穷性执行的步骤会自动结束,不能是死循环,并且每一步是在可以接受的时间内完成。
3.确定性:同一个输入,会得到唯一的输出,结果确定
4.可行性:每一个步骤都是可以实现的。

算法的设计

1.正确性
        语法正确
        合法的输入能得到合理的结果
        对非法的输入,给出满足要求的规格说明
        对精心选择,甚至刁难的测试都能正常运行,结果正确
2.可读性:便于交流,阅读,理解
3.健壮性:输入非法数据,能进行相应的处理,而不是产生异常
4.高效:存储低,效率高 

算法时间复杂度

也就是执行这个算法所花时间的度量
推算时间复杂度
    1.用常数1 取代运行时间中的所有加法常数
    2.在修改后的运行函数中,只保留最高阶项。
    3.如果最高阶存在且不是1,则取除这个项相乘的常数

2n+3,  --->O(n) 
3n+1; --->O(n)
2n^2 +10;--->O(n^2)
2n^3+3n+1; --->O(n^3)

O(1)<O(logn)<O(n)<O(nlogn)//快排<O(n^2)//冒泡、选择(两个for循环)<O(n^3)//三个for循环<O(2^n)<O(n!)<O(n^n) 后面三个半天出不了结果
越往👈越好

 

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

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

相关文章

AC695x BLE OTA调试

SDK版本&#xff1a;AC695N_soundbox_sdk_release_3.1.0AC695x SDK支持BLE OTA升级&#xff0c;使用杰理公版APP升级即可。SDK需要做一些调整&#xff0c;板级文件需要增加如下配置&#xff0c;使能OTA升级 #define TCFG_APP_BT_EN 1#define APP_UPDATE_EN …

Three.js动效(第09辑):令人瞠目结舌的交互效果,沉浸式体验

three.js能够实现各种3D动态效果&#xff0c;不禁有小伙伴问了&#xff0c;实现这些效果到底有什么意思&#xff0c;其实最大的意义就是给用户沉浸式的体验&#xff0c;瞬间专注用户注意力。 Three.js能够带来以下沉浸式体验&#xff1a; 3D虚拟现实体验&#xff1a; 使用Th…

MATLAB-bode图编程

num[1 1];den [2 1];tf(num,den)bode(tf(num,den));hold on

PHP8.3.9安装记录,Phpmyadmin访问提示缺少mysqli

ubuntu 22.0.4 腾讯云主机 下载好依赖 sudo apt update sudo apt install -y build-essential libxml2-dev libssl-dev libcurl4-openssl-dev pkg-config libbz2-dev libreadline-dev libicu-dev libsqlite3-dev libwebp-dev 下载php8.3.9安装包 nullhttps://www.php.net/d…

Bert文本分类和命名实体的模型架构剖析

文章目录 介绍Bert模型架构损失计算方式BertForSequenceClassificationBertForTokenClassification Bert 输出结果剖析例子 参考资料 介绍 文本分类&#xff1a;给一句文本分类&#xff1b; 实体识别&#xff1a;从一句文本中&#xff0c;识别出其中的实体&#xff1b; 做命名…

由于误操作原因丢失了照片?6 款 Android 照片恢复应用程序可能有帮助

由于意外删除&#xff0c;软件故障&#xff0c;系统崩溃&#xff0c;恢复出厂设置或任何其他原因&#xff0c;您可能会丢失Android手机中的照片。无论如何&#xff0c;您仍然有很大的机会借助Android照片恢复应用程序恢复照片。有很多应用程序提供恢复支持&#xff0c;但并非所…

zeal 开发者离线文档工具

zeal是一款程序开发者不可或缺的离线文档查看器 下载地址 官网地址&#xff1a; windows版csdn下载&#xff1a;https://zealdocs.org/download.html#windows windows版官网下载&#xff1a;https://zealdocs.org/download.html#windows 下载压缩版&#xff0c;解压即用相对…

Matlab类阿克曼车机器人运动学演示

v1是后驱动轮轮速&#xff0c; v2是转向角变化速度&#xff0c; 实际上我们只需要关注XQ&#xff0c; YQ和Phi的变化率。 通过这三项和时间步长&#xff0c; 我们就可以计算出变化量&#xff0c; 再结合初始值就能推断出每个时刻的值。 % 清理当前运行环境 % 清除所有变量 cle…

搭建自己的金融数据源和量化分析平台(三):读取深交所股票列表

这里放出深交所爬虫模块的代码&#xff1a; # -*- coding: utf-8 -*- # 深圳交易所爬虫 import osimport pandas as pd import requests#读取最新深交所股票列表 def get_stock_list():cache_file_path "./sotck_file.xlsx"url "https://www.szse.cn/api/rep…

Passing output of 3DCNN layer to LSTM layer

题意&#xff1a;将3DCNN&#xff08;三维卷积神经网络&#xff09;层的输出传递给LSTM&#xff08;长短期记忆网络&#xff09;层 问题背景&#xff1a; Whilst trying to learn Recurrent Neural Networks(RNNs) am trying to train an Automatic Lip Reading Model using 3…

Linux基础I/O之文件描述符fd 重定向(下)

目录 四、文件描述符 4.1 文件描述符的内核本质 4.2 文件描述符的分配规则 五、重定向 四、文件描述符 在回忆起上述知识后&#xff0c;那么文件描述符到底是什么呢&#xff1f; 我们不难注意到&#xff0c;刚刚的open接口系统调用接口其实是有返回值的&#xff08;一个int…

FTP(File Transfer Protocal,文件传输协议)

文章目录 引言FTP管理工具FTP客户端FTP连接模式控制连接数据连接FTP命令/响应FTP命令FTP响应FTPSSFTP引言 FTP(File Transfer Protocal,文件传输协议)用于建立两台主机间的数据文件传输下载。使用客户/服务器(Client/Server)架构,基于TCP协议,服务端口为21。 FTP链接…

17.延迟队列

介绍 延迟队列&#xff0c;队列内部是有序的&#xff0c;延迟队列中的元素是希望在指定时间到了以后或之前取出和处理。 死信队列中&#xff0c;消息TTL过期的情况其实就是延迟队列。 使用场景 1.订单在十分钟内未支付则自动取消。 2.新创建的店铺&#xff0c;如果十天内没…

行锁表锁都是渣渣,元数据锁才是隐藏大佬

什么是元数据锁&#xff1f; 英文名叫Metadata Lock&#xff0c;缩写为MDL&#xff0c;顾名思义&#xff0c;它是针对元数据的一种锁&#xff0c;锁的是元数据。 那什么是元数据&#xff1f; 一张表有100条记录&#xff0c;这里的记录我们可以称之为表数据&#xff0c;一张表…

深入了解:MinIO 企业对象存储的可观察性

可观测性是指收集信息&#xff08;跟踪、日志、指标&#xff09;&#xff0c;以提高性能、可靠性和可用性为目标。很少有人能确定其中一个事件的根本原因。通常情况下&#xff0c;当我们将这些信息关联起来形成叙述时&#xff0c;我们就会有更好的理解。从一开始&#xff0c;Mi…

7.27扣...

知识点补充&#xff1a; 1.StringBuilder StringBuilder 类在 Java 中是一个可变字符序列。与 String 类不同&#xff0c;StringBuilder 可以在创建之后被修改。这意味着你可以向 StringBuilder 对象追加、插入或删除字符&#xff0c;而不需要创建新的对象&#xff08;辅助数…

池化层pytorch最大池化练习

神经网络构建 class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.maxpool1 MaxPool2d(kernel_size3, ceil_modeFalse)def forward(self, input):output self.maxpool1(input)return output Tensorboard 处理 writer SummaryWriter("./l…

F4A0手把手教程1: 华大单片机HC32F4A0如何新建工程(ddl库版本)

开发板请点击&#xff1a;https://item.taobao.com/item.htm?spma21n57.1.item.3.5fc760c3ycChCu&priceTId2150418a17219238749041878ec06d&utparam%7B%22aplus_abtest%22:%222166044947a45798ae4c3d102fcea719%22%7D&id707262644934&ns1&abbucket20 准备…

高速板开源工程的学习(一)

泰山派NAS-原理图和PCB设计经验分享-塞塞哇 (saisaiwa.com) BGA扇出的时候千万小心&#xff0c;导线到焊盘的距离大于0.1MM,千万小心&#xff0c;不然会寄寄的&#xff0c;这个在设计规则里面可以设置&#xff1a; 这种就容易造成阻焊开窗的误判&#xff0c;是很不规范的&…

PyTorch+AlexNet代码实训

参考文章&#xff1a;https://blog.csdn.net/red_stone1/article/details/122974771 数据集&#xff1a; 打标签&#xff1a; import os# os.path.join: 每个参数都是一个路径段&#xff0c;将它们连接起来形成有效的路径名。 train_txt_path os.path.join("data"…