数组是连续的内存空间,有下标值index,根据下标寻址快。往数组里插入或删除元素会造成数组重构,效率低下。用于已知的数据量。
链表是一个节点指向下一个节点,寻址较慢,添加,移除数据较方便。在频繁插入和删除的数据中,链表有很大的优势。
哈希表(散列表)是数组跟链表的结合体,体现了空间换时间的概念。结合散列函数可以确定元素在数组中哈希桶的位置,然后由哈希冲突决定最终的寻址复杂度。利用负载因子跟扩容机制保证综合效率。哈希表结合了数组跟链表,所以综合性能较优。
二叉树一般用来查找,即搜索二叉树,可以保证搜索元素的时间复杂度在O(logn)以内。二叉树遵循右子树大于根节点,左子树小于根节点的原则进行数据的插入和保存。二叉树能够保证有序存储(按照具体的值进行比较),比较适合用于对数据进行排序存储。查询。新增元素效率在优化树的结构里综合效率不错。
备注:在大多数计算机上log(n)就是以2为底的对数,之所以出现log(n),多半是二分;