//时间复杂度 //PriorityQueue,peek当然是O(1),offer和poll是O(logn)-你想想把值插进去最慢也是O(n)了如果这样了用PQ做什么 //LinkedList,add,addFirst,addLast,remove,removeFirst,removeLast都是O(1),而remove(int index)需要指针走过去所以需要O(n) //Java中ArrayList和Vector差别,ArrayList是async的,每次增加50%,Vector是sync的,每次增加100%,但insert时候都需要shift,https://www.geeksforgeeks.org/vector-vs-arraylist-java/ //关于list的内部 //1)LinkedList可以理解为queue,从左往右head到tail中间是next,insert是发生在head部位,remove发生在tail部位,即先进先出,http://www.algolist.net/Data_structures/Singly-linked_list/Removal //2)但java中的LinkedList是用doubly linked list实现的,本质是一样的先进先出,但print的时候会看起来是和存储顺序相反的https://www.geeksforgeeks.org/linkedlist-remove-method-in-java/?ref=rp //3)注意你无论画arraylist,linkedlist,vector,doubly linked list,head都是在左侧,tail在右侧,而当你画queue时候相当于list顺时针旋转了45度
数据结构中confusing的地方整理
最新推荐文章于 2020-08-30 10:10:45 发布