数据结构严蔚敏版精简版-绪论

1.基本概念和术语

下列概念和术语将在以后各章节中多次出现,本节先对这些概念和术语赋予确定的含义。

数据(Data):数据是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号 的总称。

数据元素(DataElement):数据元素是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。 在有些情况下,数据元素也称为元素、记录等。

数据项(DataItem):数据项是组成数据元素的、有独立含义的、不可分割的最小单位。例如,学生 基本信息表中的学号、姓名、性别等都是数据项。

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

2.数据结构

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

数据结构包括逻辑结构和存储结构两个层次。

2.1数据的逻辑结构

从逻辑关系上描述数据,它与数据的存储无关,是独立千计算机的

通常有四类基本结构,从逻辑结构上分为线性和非线性

逻辑结构可以用一个层次图描述

2.2数据的存储结构

数据对象在计算机中的存储表示称为数据的存储结构,也称为物理结构。数据元素在计算机中有两种基本的存储结构,分别是顺序存储结构和链式存储结构。

四大存储结构:顺序存储结构、链接存储结构、索引存储结构和散列存储结构

举例:如链、哈希(散列)、顺序、索引等关键字的一般是存储结构。

3.算法评估

算法 (Algorithm) 是为了解决某类问题而规定的一个有限长的操作序列。

3.1算法五个重要特性

(1)有穷性。一个算法必须总是在执行有穷步后结束,且每一步都必须在有穷时间内完成。

(2) 确定性。对千每种情况下所应执行的操作,在算法中都有确切的规定,不会产生二义性, 使算法的执行者或阅读者都能明确其含义及如何执行。

(3) 可行性。算法中的所有操作都可以通过已经实现的基本操作运算执行有限次来实现。

(4) 输入。一个算法有零个或多个输入

(5) 输出。一个算法有一个或多个输出,无输出的 算法没有任何意义。

3.2评价算法优劣的基本标准

一个算法的优劣应该从以下几方面来评价。

(1)正确性。在合理的数据输入下,能够在有限的运行时间内得到正确的结果。

(2)可读性。一个好的算法,首先应便千人们理解和相互交流, 其次才是机器可执行性。可 读性强的算法有助于人们对算法的理解,而难懂的算法易千隐藏错误,且难千调试和修改。

(3)健壮性。当输入的数据非法时,好的算法能适当地做出正确反应或进行相应处理,而不 会产生一些莫名其妙的输出结果。

(4)高效性。高效性包括时间和空间两个方面。时间 可以用时间复杂度来度量;空间可以用空间复杂度来度量。时间复杂度和空间复杂度是衡量算法的两个主要指标。

通常只讨论算法在最坏情况下的时间复杂度,即分析在最坏情况下,算法执行时间的上界。

若算法执行时所需要的辅助空间相对千输入数据量而言是个常数,则称这个算法为原地工作,辅助 空间为0(1),

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【CC2530-操作外部flash】

zigbee cc2530操作flash,以cc2530读flash_id为例子; void InitIO() {CLKCONCMD & ~0x40; //设置系统时钟源为32MHZ晶振 while(CLKCONSTA & 0x40); //等待晶振稳定为32M CLKCONCMD & ~0x47; //设置系统主时钟频率为32MHZ…

【自动驾驶】针对低速无人车的线控底盘技术

目录 术语定义 一般要求 操纵装置 防护等级 识别代号 技术要求 通过性要求 直线行驶稳定性 环境适应性要求 功能安全要求 信息安全要求 故障处理要求 通信接口 在线升级(OTA) 线控驱动 动力性能 驱动控制响应能力 线控制动 行车制动 制动响应能力 线控转向 总体要求 线控…

防火墙技术基础篇:基于NSP配置L2TP VPN

防火墙技术基础篇:基于eNSP配置L2TP VPN 一、L2TP VPN概念 L2TP(Layer 2 Tunneling Protocol),即第二层隧道协议,是一种基于点对点协议(PPP)的二层隧道协议。它结合了PPTP(Point-t…

Docker的安装、启动和配置镜像加速

前言: Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 而企业部署一般都是采用Linux操作系统,而…

Android关闭硬件加速对PorterDuffXfermode的影响

Android关闭硬件加速对PorterDuffXfermode的影响 跑的版本minSdk33 编译SDK34 import android.content.Context import android.graphics.Bitmap import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint import android.graphics.Port…

Nginx企业级负载均衡:技术详解系列(16)—— Nginx的try_files指令,你知道这个指令是干什么的吗?

你好,我是赵兴晨,97年文科程序员。 今天咱们来聊一聊Nginx的try_files指令,你知道这个指令是干什么的吗? 如果你对Web服务器配置有所了解,那么你可能会对try_files指令感到好奇。这个指令实际上是Nginx配置中的一项强…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(十四)

本系列课程,将重点讲解Phpsploit-Framework框架软件的基础使用! 本文章仅提供学习,切勿将其用于不法手段! 接上一篇文章内容,讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 今天,我们来介…

19.4-STM32接收数据-状态显示在屏幕 openMV寻迹与小车控制 Openmv+STM32F103C8T6视觉巡线小车

这个是全网最详细的STM32项目教学视频。 第一篇在这里: 视频在这里 STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机 跟随 19.4-STM32接收数据-状态显示在屏幕 先通过串口上位机模拟发送、 STM32有视觉循迹模式、…

SwiftUI知识点(一)

前言: Swift知识点,大至看完了,公司项目是Swift语言写的,后续苹果新出的SwiftUI,也需要学习一下 不知觉间,SwiftUI是19年出的,现在24年,5年前的东西了 学习的几个原因: …

探索DIYGW可视化开发工具:提升UniApp项目效率与质量的新途径

一、引言 在快速迭代和不断创新的移动应用开发领域中,开发者们常常面临着一个共同的挑战:如何在保证开发质量的同时,缩短开发周期。近期,一款名为DIYGW的可视化开发工具进入了我们的视野,它以其独特的拖拽式开发方式和…

Linux共享内存创建和删除

最近项目中使用到了共享内存记录下 创建共享内存: 删除共享内存: 代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <sys/mman.h> #include <sys/stat.h> #include <u…

计算机科技的飞跃:从机械到量子的革命之旅

计算机科技的历史长河中&#xff0c;涌现出了许多划时代的事件和发明&#xff0c;它们不仅标志着技术的飞跃&#xff0c;也深刻地改变了人类生活的方方面面。 ENIAC的诞生 在第二次世界大战的硝烟中&#xff0c;美国军方迫切需要一种能够迅速解决复杂计算问题的工具&#xff0…

深入理解文件系统和日志分析

文件是存储在硬盘上的&#xff0c;硬盘上的最小存储单位是扇区&#xff0c;每个扇区的大小是512字节。 inode&#xff1a;存储元信息&#xff08;包括文件的属性&#xff0c;权限&#xff0c;创建者&#xff0c;创建日期等等&#xff09; block&#xff1a;块&#xff0c;连续…

SpringMVC:转发和重定向

1. 请求转发和重定向简介 参考该链接第9点 2. forward 返回下一个资源路径&#xff0c;请求转发固定格式&#xff1a;return "forward:资源路径"如 return "forward:/b" 此时为一次请求返回逻辑视图名称 返回逻辑视图不指定方式时都会默认使用请求转发in…

2024年06月数据库流行度最新排名

点击查看最新数据库流行度最新排名&#xff08;每月更新&#xff09; 2024年06月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多&#xff0c;这个数据库就被认为越受欢迎。这是一个领先指标。原始数…

模板-初阶

引言&#xff1a; 在C&#xff0c;我们已经学过了函数重载&#xff0c;这使得同名函数具有多个功能。但是还有一种更省力的方法&#xff1a;采用模板。 本文主要介绍以下内容 1. 泛型编程 2. 函数模板 3. 类模板 1.泛型编程 在将这一部分之前&#xff0c;通过一个故事引…

语言模型的校准技术:增强概率评估

​ 使用 DALLE-3 模型生成的图像 目录 一、说明 二、为什么校准对 LLM 模型至关重要 三、校准 LLM 概率的挑战 四、LLM 的高级校准方法 4.1 语言置信度 4.2 增强语言自信的先进技术 4.3 基于自一致性的置信度 4.4 基于 Logit 的方法 五、代理模型或微调方法 5.1 使用代…

Python 网络爬虫:深入解析 Scrapy

大家好&#xff0c;在当今数字化时代&#xff0c;获取和分析网络数据是许多项目的关键步骤。从市场竞争情报到学术研究&#xff0c;网络数据的重要性越来越被人们所认识和重视。然而&#xff0c;手动获取和处理大量的网络数据是一项繁琐且耗时的任务。幸运的是&#xff0c;Pyth…

Winform ListView 嵌入组合框、布尔、图片等复杂控件

一、Winform ListView 显示复杂控件示例 以下展示了两种实现思路方案。最后修改日期 2024-05 surfsky 1.1 方案一&#xff1a;ListView 结合组合框进行模拟编辑 基本思路 在界面上放置一个lisview和一个combobox&#xff0c;combobox平时是隐藏的。点击listview&#xff0c…

机械设计手册第一册:公差

形位公差的标注&#xff1a; 形位公差框格中&#xff0c;不仅要表达形位公差的特征项目、基准代号和其他符号&#xff0c;还要正确给出公差带的大小、形状等内容。 1.形位公差框格&#xff1a; 形位公差框格由两个框格或多个格框组成&#xff0c;框格中的主要内容从左到右按…