数据结构分为逻辑结构和物理结构。
逻辑结构
1,集合结构。2,线性结构。3,属性结构。4,图形结构。
物理结构
1,顺序存储。2,链式存储。
算法设计要求:时间效率高,存储量 低。
时间复杂度和空间复杂度可以相互转换。如果要要比较两个函数的运行效率,可以从时间复杂度入手。
顺序存储结构获取数据的时间复杂度是O(1),因为可以通过下标直接获得数据。
顺序存储结构插入操作的时间复杂度是O(1) ~O(n),因为需要遍历。
顺序存储结构容易造成空间上的碎片。因为顺序结构在申请空间的位置是一块一块紧连在一起的,多余的空间很难被利用。
链式存储结构获取数据的时间复杂度是O(n),以为需要遍历数据才可以获取。
链式存储结构插入操作的时候,第一个元素的插入的时间复杂度是O(n),剩余的元素插入的时间复杂度是O(1),因为第一个元素遍历的时候已经确定了位置,剩余的元素只需要跟在第一个元素后面直接插入即可。