数据结构基础入门

news2024/11/15 11:32:24

😀前言
本篇博文是关于数据结构基础入门,希望你能够喜欢

🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊

文章目录

  • 数据结构基础
    • 数据结构基础定义
      • 什么是数据
      • 什么是数据元素
      • 数据项
      • 三者之间的关系:
      • 数据对象
      • 数据结构:
        • 直接前驱:
        • 直接后驱
        • 数据结构包含三个方面
          • 逻辑结构
    • 抽象数据类型
      • ADT常用定义格式
    • 算法的描述与分析
      • 算法定义
      • 算法描述
      • 算法特征
      • 算法优劣基本标准
    • 算法的时间复杂度
      • 时间复杂度的求解
        • 示例一
        • 示例二
      • 算法的时间复杂度计算规则
      • 算法的时间复杂的比较

数据结构基础

数据结构基础定义

什么是数据

数据:能够被计算机识别、存储和加工处理的信息载体。

列如:数值、字符、表格、图像、动画等等

什么是数据元素

数据的基本单位,在计算机中通常作为整体进行处理。

数据项

数据项:具有独立含义的最小标识单位,也称为域。数据元素有时可以由若干数据项构成。

三者之间的关系:

数据>数据元素>数据项

列:学生表>个人纪录>学号、姓名

数据对象

数据对象:性质相同的数据元素的集合,是数据的一个子集。

数据结构:

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

直接前驱:

对表中任意一个结点,与他相邻且在他前面的结点称为直接前驱

直接后驱

对表中任意一个结点,与他相邻且在他后面的结点称为直接后驱

数据结构包含三个方面
  1. 数据的逻辑结构
  2. 数据的存储/物理结构
  3. 数据的操作/运算
逻辑结构

数据元素之间抽象化的相互关系,与数据存储无关,独立于计算机。

抽象数据类型

ADT = (D,S,P)

D:数据对象

S: D上的关系集

P:D上的操作集

ADT常用定义格式

ADT抽象数据类型名{

​ 数据对象:<数据对象的定义>

​ 数据关系:<数据关系的定义>

​ 基本操作:<基本操作的定义>

}ADT抽象数据类型名

算法的描述与分析

算法定义

一个有穷的指令,这些指令为解决某一特定任务规定了一个运算序列。

算法描述

自然语言、流程图、程序设计语言、伪码。

算法特征

有穷性:必须在执行有穷步后结束,且每一步都必须在有穷时间内完成

确定性:每步定义都是确切、无歧义的

可行性:所有的操作都是可以通过已经实现的基本操作执行有限次数

输入:有0个或多个输入

输出:有一个或多个输出(处理结果)

算法优劣基本标准

  1. 正确性
  2. 可读性
  3. 健壮性
  4. 高效性(时间代价、空间代价)

算法的时间复杂度

算法中,进行基本运算的次数越少,其运行时间也就相对越少;基本运算次数越多,其运行时间也就相对越多。所以,通常把算法中包含基本运算次数的多少称为算法的时间复杂度。一个算法的时间复杂度是指该算法的基本运算次数。
一般情况下,算法中基本语句重复执行的次数T(n)是问题规模n的某个函数f(n),算法的时间量度记作:
T(n)=O(f(n))
其中,记号“O”读作“大O”,即Order(数量级)的缩写,表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度。O(n)为算法的时间复杂度。

时间复杂度的求解

时间复杂度是由嵌套最深层语句的频度决定的。

示例一

程序执行次数是常数,时间复杂度为T(n)=O(1)
在这里插入图片描述

示例二

取最高级别的项,去该项的系数,那么时间复杂度为T(n)=O(n)

image-20230906150912673

算法的时间复杂度计算规则

加法规则
当两个并列的算法段的时间代价分别为f1(n)=0(g1 (n))和 f2(m)=0(g2(m))时,两个算法段连在一起的算法段时间代价为:
f(n, m)=f1(n)+f2(m)=0 (max(g1(n),g2(m)))
乘法规则(循环语句)
如果存在循环嵌套,关键操作应该在最内层循环中。首先自外向内层层分析每一层的渐近时间复杂度,然后利用大0表示法的乘法规则来计算其时间复杂度。当两个嵌套时间复杂度的时间代价分别为f1(n)=0(g1(n))和 f2(m)=0(g2(m))时,那么整个算法段时间代价为:
f(n, m)=f1(n)*f2(m)=0(g1(n)*g2(m))

算法的时间复杂的比较

image-20230906150152756
当n取得很大时,指数时间算法和多项式时间算法在所需时间上非常悬殊
在这里插入图片描述

时间复杂度T(n)按数量级递增顺序为:

常数阶:O(1)

对数阶:O(log2n)

线性阶:O(n)

线性对数阶:o(nlog2n)

平方阶:o(n2)

立方阶:o(n3)

K次方阶:O(nk)

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

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

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

相关文章

有没有比较好的PDF编辑软件可以推荐一下?

推荐3款好用的PDF编辑器&#xff0c;简单好用&#xff0c;且基础功能免费&#xff0c;可以满足99%的工作、学习需求。 支持Windows版、Mac版 1、PDF编辑器 点击直达链接>>pdfbianji.55.la 这是一款功能丰富、编辑简单好用的PDF编辑器&#xff0c;目前仅支持Windows系统…

【C++】函数的定义

函数定义的格式 函数类型 函数名( 参数列表 ) { 函数体语句 return表达式 } 下面是一个实例&#xff0c;是用来写一个加法函数的 #include<iostream> using namespace std;//函数的定义 //语法&#xff1a; //返回值类型 函数名 &#xff08;参数列表&#xff09; {…

DIRB:一款强大的Web目录扫描工具使用指南

网安学习交流 DIRB是一款广泛使用的开源Web内容扫描工具&#xff0c;它专注于发现Web服务器上存在的目录和文件。对于安全研究员、渗透测试人员以及Web开发者来说&#xff0c;DIRB是一个不可或缺的工具&#xff0c;它能帮助他们识别潜在的入口点&#xff0c;从而进一步评估目标…

2023华为od机试C卷【符号运算/求分数计算结果】Python实现

思路: 先将中缀表达式改为后缀表达式,这样就不用考率需要使用括号来标识操作符的优先级。后缀表达式的计算按 操作符 从左到右出现的顺序依次执行(不考虑运算符之间的优先级),对于计算机而言是比较简单的结构。 然后实现后缀表达式的计算。需要注意的是:在处理后缀表达式…

谁才是制作中国式报表的最佳工具?赶紧看看这款“功能强大且免费”的报表工具!

确定制作中国式报表最佳工具的前提是&#xff1a;先搞懂到底什么是中国式报表&#xff1f; 一. 什么是中国式报表&#xff1f; 其实行业内一直没有对中国式报表做出明确的定义&#xff0c;但综合来看&#xff0c;典型的中国式报表具有以下四个显著特征&#xff1a; 1.报表格…

GIF压缩怎么压?整理了六个图片压缩方法(附步骤)

GIF压缩方法有哪些&#xff1f;电脑照片怎么压缩到200k&#xff1f; 最近很经常看到类似的问题&#xff0c;本文就分享几个简单的电脑文件压缩方法。对GIF图进行压缩是一个常见的需求&#xff0c;可以帮助减小文件大小&#xff0c;提高加载速度&#xff0c;同时保持图像质量。…

一文读懂 ESLint配置

你好,我是Qiuner. 为帮助别人少走弯路和记录自己编程学习过程而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner &#x1f339; 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 &#x1f604; (^ ~ ^) 想看更多 那就点个关注吧 我…

2.2 QT 环境配置

2.2 QT环境配置 QT是一个1991年由QT Company开发的跨平台C图形用户界面应用程序开发框架。它既可以开发GUI程序&#xff0c;也可以用于开发非GUI程序&#xff0c;比如控制台工具和服务器。Qt是面向对象的框架&#xff0c;使用特殊的代码生成扩展&#xff08;称为元对象编译器&…

目录函数以及链接文件

一、对stat里面的用户名时间做处理的函数 1.1.getpwuid&#xff08;&#xff09; struct passwd *getpwuid(uid_t uid); 功能: 根据用户id到/etc/passwd文件下解析获得 结构体信息 参数: uid:用户id 返回值: 成功返回id对应用户的信息 失败返回NULL 1. 2.getgrgid&#xf…

第1章 第2节 数据的表示(软件评测师)

1.若某计算机采用8位整数补码表示数据&#xff0c;则运算&#xff08;1271&#xff09;将产生溢出 【解析】8位整数补码表示的整数范围&#xff1a;-128~127 2.采用&#xff08;补码&#xff09;表示带符号数据时&#xff0c;算术运算过程中符号位与数值位采用同样的运算规则…

java框架介绍

Java框架是Java开发中不可或缺的一部分&#xff0c;它们为开发者提供了预定义好的软件架构、类和接口&#xff0c;以及编程规范&#xff0c;从而简化了Java应用程序的开发过程。下面我将详细介绍Java框架的几个方面&#xff1a; 一、Java框架的定义 Java框架是一种为了解决特定…

bootstrap之表格

通过添加 .table-striped class&#xff0c;您将在 <tbody> 内的行上看到条纹 通过添加 .table-bordered class&#xff0c;您将看到每个元素周围都有边框&#xff0c;且占整个表格是圆角的 <!DOCTYPE html> <html><head><meta charset"utf…

UBD分层结构的学生信息管理系统(python+pysimplegui+mysql)

目录 作者的吐槽 介绍流程 UBD的结构 UBD的流程图&#xff08;也称不上流程图吧&#xff09; UBD的优缺点 优点 缺点 系统 设计结构 UI UI的一些图片 UI的代码 Business 数据库的连接&#xff08;json&#xff09; Data 总结 作者的吐槽 当知道UBD分层结构之后…

西安产业园排名新趋势,西安国际数字影像产业园以创新驱动发展?

近年来&#xff0c;随着数字经济的快速发展&#xff0c;西安产业园排名也在不断变化。其中&#xff0c;西安国际数字影像产业园凭借其卓越的创新能力和前瞻性的发展战略&#xff0c;迅速崭露头角&#xff0c;成为西安乃至全国数字影像产业的重要推动力量。那么&#xff0c;西安…

elementPlus中el-table的每列两行溢出隐藏怎么设置

el-table的每列两行溢出隐藏怎么设置 elementPlus中的el-table如何设置多行溢出隐藏table中的table属性中有show-overflow-tooltip属性&#xff0c;但是只支持单行溢出隐藏如何改成两行呢&#xff1f;在审查元素中我们发现.el-tooltip这个类名是溢出隐藏的样式&#xff0c;原本…

lvs项目

实验环境 LVS:Linux Virtual Server&#xff0c;负载调度器&#xff0c;内核集成章文嵩&#xff0c;阿里的四层SLB(ServerLoadBalance)是基FLVSkeepalived实现。 一、lvs-net模式 搭建环境以及网络配置 给lvs地址 修改eth1 lvs中打开内核路由功能 sysctl -a | greo ip_forwa…

【总】前端 Swagger url 自动转 JavaScript方法(避免重复工作...)

前言 随着项目增多&#xff0c;且多数为项目定制化接口。避免前端重复封装&#xff0c;从 Swagger 入手&#xff0c;将 url 自动转 js 方法直接用。特别节约时间和资源~ Swagger 简介 Swagger 一款 RESTFUL 接口的、基于 YAML、JSON 语言的文档在线自动生成、代码自动生成的…

Metasploit——强大的渗透测试框架

一、引言 在网络安全领域&#xff0c;渗透测试是评估系统安全性的重要手段。而 Metasploit 作为一款知名的渗透测试框架&#xff0c;为安全研究人员和测试人员提供了强大的工具和资源。本文将详细介绍 Metasploit 的特点、功能、使用方法以及在实际场景中的应用。 二、Metasp…

cad文字转arcgis注记

cad中文字转为arcgis注记&#xff0c;步骤如下&#xff1a; 1、将dwg文件下annotation文件加到图层中 2、文件点击右键&#xff0c;转换地理数据库注记 3、 导入默认地理数据库中&#xff0c;或自己新建地理数据库&#xff0c;起个文件名、点确定&#xff08;注意&#xff1a…

Codeforces Round 916 (Div. 3) D 题 Three Activities

题目描述 Winter holidays are coming up. They are going to last for nn days. During the holidays, Monocarp wants to try all of these activities exactly once with his friends: go skiing;watch a movie in a cinema;play board games. Monocarp knows that, on …