数组,链表,散列表。二叉树的区别

数组是连续的内存空间,有下标值index,根据下标寻址快。往数组里插入或删除元素会造成数组重构,效率低下。用于已知的数据量。

链表是一个节点指向下一个节点,寻址较慢,添加,移除数据较方便。在频繁插入和删除的数据中,链表有很大的优势。


哈希表(散列表)是数组跟链表的结合体,体现了空间换时间的概念。结合散列函数可以确定元素在数组中哈希桶的位置,然后由哈希冲突决定最终的寻址复杂度。利用负载因子跟扩容机制保证综合效率。哈希表结合了数组跟链表,所以综合性能较优。


二叉树一般用来查找,即搜索二叉树,可以保证搜索元素的时间复杂度在O(logn)以内。二叉树遵循右子树大于根节点,左子树小于根节点的原则进行数据的插入和保存。二叉树能够保证有序存储(按照具体的值进行比较),比较适合用于对数据进行排序存储。查询。新增元素效率在优化树的结构里综合效率不错。


备注:在大多数计算机上log(n)就是以2为底的对数,之所以出现log(n),多半是二分;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容