数据结构day1

devtools/2024/9/24 19:15:21/

数据结构
 相互之间存在一种或多种特定关系的数据元素的集合
    
    逻辑结构
        集合:所有数据再同一个集合中,关系平等。 
eg: 列车上的乘客们         
     C语言中的数组
        线性:数据与数据之间是一对一的关系。
eg:排队买包子   
     队列     向前是一个 向后也是一个  --- 一对一的关系----线性关系
     C语言中的数组在内存。 (数组线性表)
        树:一对多。        
        图:多对多。
        
        
物理结构:(在内存中的存储关系)
    1、顺序存储,数据存放在连续的存储单位中,逻辑关系和物理关系一致
    2、链式(malloc),数据存放的内存单位是随机或任意的,可以练习也可以不连续
        
struct Per     //数据元素
{
    char name;   //数据项
    int age;
    char phone;
}        
数据:可以输入输出,运行期间可以变化的。
数据项:有一定意义的数据  表示一个特定属性的变量
数据元素:多个数据项的整体

struct Per list[1000] ;   //数据对象:数据元素的集合        
        
        
abstruct datatype---->ADT       
数据的类型         
    是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。    
    
    原子类型:int , char ,float 
    结构类型:sturct , union 
    差别sturct 占内存更大,
    union在使用的时候只能同一时间使用一种数据
    
    抽象数据类型, 数学模型 + 操作    
    基础的操作有:增删改查。
    

程序 = 算法 + 数据

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

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

    
算法的设计:
1、 正确性
语法正确     合法的输入得到合理的结果     对精心选择,甚至刁难的测试都能正常运行结果正确。
2、 可读性
便于交流,阅读,理解。
3、 健壮性

4、 高效性
crc        
        
时间复杂度 O( ) ;
--------------------
算法时间复杂度
    执行这个算法所花费时间的度量

推导时间复杂度
1,用常数1取代运行时间中的所有加法常数
2,在修改后的运行函数中,只保留最高阶项。
3,如果最高阶存在且不是1,则取除这个项相乘的常数。        
        
        
O(1)<O(logn)<O(N)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)        
        


        
线性表
    零个或多个数据元素的  有限  序列
    5
    
        

        
        

        
=========================
在逗号位置折叠长的代码        

        
        
        
        
    


http://www.ppmy.cn/devtools/85233.html

相关文章

一文解决 | Linux(Ubuntn)系统安装 | 硬盘挂载 | 用户创建 | 生信分析配置

原文链接&#xff1a;一文解决 | Linux&#xff08;Ubuntn&#xff09;系统安装 | 硬盘挂载 | 用户创建 | 生信分析配置 本期教程 获得本期教程文本文档&#xff0c;在后台回复&#xff1a;20240724。请大家看清楚回复关键词&#xff0c;每天都有很多人回复错误关键词&#xf…

Leetcode 3235. Check if the Rectangle Corner Is Reachable

Leetcode 3235. Check if the Rectangle Corner Is Reachable 1. 解题思路2. 代码实现 题目链接&#xff1a;3235. Check if the Rectangle Corner Is Reachable 1. 解题思路 这一题的话我的思路就是通过一个DSU算法找到所有有交叠的圆的集合&#xff0c;然后看他们一起构成…

[CISCN2019 华东南赛区]Web11

进来先做信息收集&#xff0c;右上角显示当前ip&#xff0c;然后有api的调用地址和请求包的格式以及最重要的是最下面的smarty模版&#xff0c;一看到这个就得想到smarty模版注入 测试了一下两个api都无法访问 直接切到数据包看看能不能通过XFF来修改右上角ip 成功修改&#x…

vue2中,前端实现语音播报

一、播报情况说明 vue中语音播报&#xff0c;目前本人写的过程中&#xff0c;遇到了两种情况&#xff0c;第一种是后端直接返回一个mp3的播放url&#xff0c;第二种就是播报的内容需要前端自己拼接的&#xff0c;关于两种方法&#xff0c;我都说一下如何实现 1、后端直接返回…

搭建基于 ChatGPT 的问答系统第五章-思维链推理

需要学习提示词工程的同学请看面向开发者的提示词工程 前几章内容请查看 搭建基于 ChatGPT 的问答系统第一章-综述 搭建基于 ChatGPT 的问答系统第二章-提问范式与Token 搭建基于 ChatGPT 的问答系统第三章-评估输入分类 搭建基于 ChatGPT 的问答系统第四章-检查输入审核 第五…

笔记分类的烦恼

前言 你是否为笔记的分类而苦恼&#xff0c;是否迷失在市面上纷繁复杂的笔记分类法&#xff1f; 不用再烦恼了&#xff0c;本文将介绍一个适用于个人笔记的终极分类办法&#xff0c;只需三刀&#xff0c;尘埃落定。 &#x1f52a; 第一刀 笔记场景 &#x1f370; 也就是笔记…

力扣高频SQL 50题(基础版)第十题

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第十题1661. 每台机器的进程平均运行时间题目说明思路分析实现过程准备数据实现方式结果截图总结 力扣高频SQL 50题&#xff08;基础版&#xff09;第十题 1661. 每台机器的进程平均运行时间 题目说明 表: Activity…

Java面试八股之后Spring、spring mvc和spring boot的区别

Spring、spring mvc和spring boot的区别 Spring, Spring Boot和Spring MVC都是Spring框架家族的一部分&#xff0c;它们各自有其特定的用途和优势。下面是它们之间的主要区别&#xff1a; Spring: Spring 是一个开源的轻量级Java开发框架&#xff0c;最初由Rod Johnson创建&…