1.数据结构的三要素:
1.逻辑结构: 是指元素之间的逻辑关系,与存储无关.包括线性结构和非线性结构。
a、线性结构的典型特征是最多只有一个前驱和一个后继。如 堆栈、队列、串(三个受限线性表);线性表、数组。。。
b、非线性不一定,如树、图、集合
2、存储结构:在计算机中的存储形式 包括元素的表示(依据数据类型)和数据之间的关系
a、顺序存储:逻辑上相邻的元素 物理存储也相邻.优点:随机存取 缺点:只能使用一块相邻的存储单元 可能产生很多外部碎片
b、链接存储:不要求逻辑相邻一定物理相邻,借助指示元素存储元素位置的指针表示元素之间的逻辑关系。优点:可以充分利用存储单元,不会产生碎片现象 缺点;只能顺序存取,而且指针占有额外的存储空间。
c、索引存储:建立索引表存储元素的位置
d、散列存储:根据元素的关键字直接计算其存储位置,优点 增删改都很快。 缺点;如果散列函数选取不当,会有大量计算冲突时间开销和空间开销
ps:链式存储设计时,各个不同节点的存储空间可以不连续,但节点内的存储单元地址则必须连续
数据的逻辑结构独立于其物理存储结构
2、算法的特性
有穷性:在有穷时间内执行结束
确定性:每一条指令(每一个操作)必须有确定的含义,不能二义性
可行性:一个算法的操作都可以转化为基本操作执行
输入:
输出:有输入和输出
3、常见的渐进复杂度比较
O(1)<O(log2^n)<O(n)<O(nlog2^n)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)
空间复杂度:定义算法所消耗的存储空间
时间: 2024-11-08 00:21:20