嵌入式学习笔记Day18:数据结构

  • 数据结构的概念
  • 数据的类型
  • 数据与算法

一、数据结构的概念

        1. 数据结构:相互之间存在一种或多种特定关系的数据元素的集合。

            数据结构包含其逻辑结构和物理结构。

        2.逻辑结构:

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

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

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

struct Per 数据元素
{
char name;//数据项
int age;
char phone;
}

struct Per list[100]; //数据对象

二、数据的类型

        1.数据的类型(ADT,abstruct datatype )是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。

        2.原子类型与结构类型:

        原子类型,int,char,float
        结构类型,sturct, union

        抽象数据类型, 数学模型 + 操作。

三、数据与算法

        程序 =  数据 + 算法

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

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

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

        算法时间复杂度,也就是执行这个算法所花时间的度量。

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

        

你可能感兴趣的:(数据结构,算法)