数组

数组更容易掌握

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)

 

练习题 

笔记 数组和链表

链表 因为 是有序的  所以厨师取出第一个然后 删除 ,而服务员 插入最后一个 链表更方便

 

笔记 数组和链表

这里使用数组吧  因为二分查找算法通常用于在一个有序的数组中寻找指定的元素。

笔记 数组和链表

数组插入会重新计算那么速度会慢, 内存不能随机 占用内存会很大  

笔记 数组和链表

查找的时候比数组慢 比链表快    插入的时候比数组快     比链表快? 需要确认 

相关文章: