逻辑结构
顺序存储
随机访问是可以通过下标取到任意一个元素,即数组的起始位置+下标
链式存储
链式存储是不连续的,比如A只保留了当前的指针,那么怎么访问到B和C呢
每个元素不仅存储自己的值还使用额外的空间存储指针指向下一个元素的地址,所以链式存储只能按照顺序取值
通过A->B 不能A->C,如果C的后面没有值了那么adr+z 可以保存Null 表明后面没有值了
逻辑结构和存储结构的区别:
1.逻辑结构对人是友好的 比如一对一,一对多,多对多 (为了实现不同的逻辑,程序员去实现的)
2.存储结构对计算机友好 内存连续或者不连续 (把程序员实现的逻辑结构存储到计算机中)
我们的目的是把不同的逻辑结构用不同的存储结构去实现
时间复杂度和空间复杂度
比如取数组中某一个元素的时间复杂度就是O(1)
这里没有for循环,不会因为n大就执行很多次,这里还是一次,所以时间复杂度是O(1),不会随着n的增大而变大那么就是O(1)
m,n此时是不确定的不相等所以O(m*n)
空间复杂度
空间复杂度O(1)
n个元素数组排序,不适用额外的空间(随着n的增长而增长的空间) 空间复杂度就是O(1)