数组
数组更容易掌握
1、数组在内存中都是相连的 紧靠在一起的
2、数组新添加的时候会重新计算,这样添加元素的时候会变慢;也可以提前设置数组的大小来解决变慢问题 但是用不完会造成内存浪费,超过了还得重新计算会变慢
3、数组获取元素方便根据索引,直接就能获取到,数组的元素自带索引 从0开始。
4、数组 :读取 O(1) 插入O(n) 删除O(n)
O(n) = 线性时间
O(1) = 常量时间
链表
链表中的元素可存储在内存的任何地方。
1、链表在内存中是随机的,链表的每一个元素都存储了下一个元素的地址,从而使一系列随机的内存地址串在一起。
2、在链表中添加元素很容易:只需要将其放入内存,并将其地址存储到前一个元素中。而且添加的时候不需要重新计算
3、链表在获取元素的时候 是从1到2到3到4依次类推获取到元素,如果是获取全部元素,链表的效率很高,但是你要是需要跳跃获取,链表的效率很低。
4、链表: 读取 O(n) 插入O(1) 删除O(1)
练习题
链表 因为 是有序的 所以厨师取出第一个然后 删除 ,而服务员 插入最后一个 链表更方便
这里使用数组吧 因为二分查找算法通常用于在一个有序的数组中寻找指定的元素。
数组插入会重新计算那么速度会慢, 内存不能随机 占用内存会很大
查找的时候比数组慢 比链表快 插入的时候比数组快 比链表快? 需要确认