数据结构-01

上大学时学校开过一门课程就是数据结构,当时学的似懂非懂,不知道它的重要性,现在工作了,想捡起来,所以重新买了本书,重温数据结构,我自己会记录整个学习的过程,有兴趣的同学可以一起。

今天刚看到基础篇,也记录下来,方便日后查看和再次回顾。

<一>你需要知道的一些名词定义:

1.数据:数据是对客观事物的符号表示,数据元素是数据结构的基本单位,是计算机进行输入输出操作的基本单位。

2.数据结构:相互之间存在的一种或多种特定关系的数据元素的集合。可以用公式表示为:数据结构=数据元素+关系(结构)

3.四类基本的数据结构:

  3.1 集合(Set)。结构中的数据元素除了存在"同属于一个集合"的关系外,不存在任何其他关系。

  3.2 线性结构(Linear Structure)。结构中的数据元素存在着一对一的关系。

  3.3 树形结构(Tree Structure)。结构中的数据元素存在着一对多的关系。

  3.4 网状结构(Graphic Structure)。该结构中的数据元素存在着多对多的关系。

4.数据元素两种不同的表示方法:

  4.1 顺序存储:顺序存储结构借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,数据元素存放在一片连续的存储空间里,通常用数组来实现。

  4.1 链式存储:链式存储结构借助引用或指针来表示数据元素之间的逻辑关系,被存放的元素被随机的存放在内存中再用指针将它们链接在一起。

5.程序=数据结构+算法

6.算法:算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。

7.算法的重要特征:

  7.1 有限性。算法必须在有限的步骤之后结束

  7.2 确定性。算法的每一步都是确定的定义,无二义性,在任何条件下,算法只有唯一的一条执行路径,对于相同的输入只能得到相应的输出。

  7.3 输入。一个算法可接受零个或多个输入

  7.4 输出。一个算法有至少一个或多个输出

  7.5 有限性。算法由可实现的基本指令完成

8.通常评估一个算法可以从算法执行的时间和算法所占用内存空间两方面来进行。

时间: 2024-12-30 11:13:25

数据结构-01的相关文章

算法数据结构01 /算法数据结构概述

目录 算法数据结构01 /算法数据结构概述 1. 算法 2. 评判程序优劣的方法 3. 时间复杂度 4. 数据结构 5. python数据结构性能分析 6. 总结 算法数据结构01 /算法数据结构概述 1. 算法 算法概述 算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务.一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用. 算法是独立存在的一种解决问题的方法和思想. 对于算法而言,实

数据结构 --- 01. 时间复杂度,timeit模块,栈,队列,双端队列

一.时间复杂度 1.基本概念 评判程序优劣的方法: 消耗计算机资源和执行效率(无法直观) 计算算法执行的耗时(适当推荐,因为会受机器和执行环境的影响) 时间复杂度(推荐) 时间复杂度 评判规则:量化算法执行的操作/执行步骤的数量 最重要的项:时间复杂度表达式中最有意义的项 大O记法:O(时间复杂度表达式中最有意义的项) 常见的时间复杂度: O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O

数据结构01

1.逻辑结构 逻辑结构指数据对象中数据元素之间的关系,包括集合结构,线性结构,树形结构,图形结构: 集合结构中元素之间无关系:线性结构中元素有一对一关系:树形结构中元素一对多关系:图形结构中元素多对多关系: 2.物理结构 物理结构指元素存储的结构,包括顺序存储结构和链式存储结构: 顺序存储指把元素存放在地址连续的存储单元中:链式存储结构把元素存储在任意的存储单元中,存储单元可以是连续的也可以不连续,需要通过指针指向存储单元的地址:

JAVA描述算法和数据结构(01):稀疏数组和二维数组转换

一.基本简介 1.基础概念 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵:与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵.定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度. 2.处理方式 1).记录数组一共有几行几列,有多少个不同的值 2).把具有不同值的元素的行列及值记录在稀疏数组中,可以缩小程序代码的复杂度. 3.图解描述 稀疏数组表示 [0] 3 4 4 二维数组,3行,4列,4个非0的值: [1] 1 2 2 一行

sql语句面试练习

设计数据表如下 建立数据表: --------------------------------------------- create table Student ( sId int not null primary key, sName varchar(20) not null, sage int, sSex varchar(20) ); insert into Student values (01,"congcong",22,"男"), (02,"bi

苹果手机那里找115网盘资源

在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈.博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你. 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积.不断沉淀.不断总结.善于传达自己的个人见解以及乐于分享的过程. 文章目录

我喜欢减肥我们来减肥吧

http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313278016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313282016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313289016/2015.01.28.html http://www.ebay.com/cln/usli

百度回家看沙发沙发是减肥了卡斯加积分卡拉是减肥

http://www.ebay.com/cln/hpryu-caw8ke/cars/158056866019/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/158445650015/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/158445674015/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/1584456790

巢哑偕倥乇椭煞谙暗逞帕俸

IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜. 据介绍,IEEE Spectrum 的排序是来自 10 个重要线上数据源的综合,例如 Stack Overflow.Twitter.Reddit.IEEE Xplore.GitHub.CareerBuilder 等,对 48 种语言进行排行. 与其他排行榜不同的是,IEEE Spectrum 可以让读者自己选择参数组合时的权重,得到不同的排序结果.考虑到典型的 Spectrum 读者需求