关注“极客时间”微信公众号,在后台回复“算法试看”,即可获取试看课程的 PDF 课件。
作者回复: 你这样理解是对的,也正是因为这样,在平时项目里我们很难会实际使用链表。但是有一种情况,比如区块链或者比特币,我们很少随机访问中间位置的节点,而绝大部分时候我们就在尾部叠加新节点。
作者回复: Good
作者回复: infoq的工作人员辛苦画的,用专门的作图工具
作者回复: 一般情况下,的确如你所说。要赋值多个变量的时间肯定要比单纯traverse链表要慢。
作者回复: 对的,查找的话,如果无序数组就是o(n),如果有序就可以用二分查找 O(logn)
作者回复: 支持,很支持的!
作者回复: 数组的大部分操作的确是o(1)的,但是删除和在任意位置插入不是,因为数组为了保持所有元素连续,需要后续的元素都挪动位置。比较重的操作。