美文网首页
算法与数据结构-常用数据结构(4)

算法与数据结构-常用数据结构(4)

作者: 心无所恃_周义 | 来源:发表于2020-03-13 15:26 被阅读0次

数组

  1. 数组提供对元素O(1)访问,又能很好地使用二分检索和快速排序。
  2. 数组维护一组不断变化的数据代价很大,如插入,删除。
  3. 插入和删除操作通常需要通过移动元素来实现。
  4. 数组扩容通常需要通过数组复制来实现。
  5. 在数据量不多或静态数据时,数组是最佳选择。

链表

  1. 一个单链表包含一组元素,每个元素包含数据和指向下一个元素的指针。双向链表,循环链表等都是链表的变种。
  2. 链表具有恰好容纳其所有内容的大小,每个元素都需要指针的附加存储开销。
  3. 在链表中,插入和删除操作只需要通过修改指针来实现,并不需要移动其他元素。
  4. 链表特别适合需要中间插入和删除的情况,也适用于管理一批规模经常变动的无顺序数据。
  5. 链表不适合随机访问,只能通过遍历实现。

  1. 树是一种分层性数据结构。
    1.1. 在一颗树里存储着一组节点,每个节点保存一个值,它可以指向0个或多个节点,但只能被另一个节点所指向。
    1.2. 根节点没有被其他节点的指针指向。
  2. 二分搜索树
    2.1. 二叉树。
    2.2. 每个节点大于左子树所有节点;每个节点小于右子树所有节点。
    2.3. 完全随机的数据,普通的二分搜索树很好用;极端情况下会退化成链表。
  3. AVL树(平衡二叉树)
    3.1. 对于任意一个节点,左子树和右子树的高度不能超过1。
    3.2. 平衡二叉树的高度和节点数量之间的关系是 logn。
    3.3. 核心操作:标注节点高度,计算平衡因子(高度差),维护平衡 -> LL/RR/LR/RL -> 左旋转,右旋转。
    3.4. 对于查询较多的使用情况,AVL树很好用 -> O(logn)。
  4. 红黑树
    4.1. 红色节点表示『2-3』树中 3节点 的左边元素。;
    4.2. 红黑树是保持『黑平衡』的二叉树,严格意义上不是平衡二叉树。 最大高度:2logn -> O(logn)。
    4.3. 核心操作:左旋转;右旋转;颜色翻转。
    4.4. 红黑树牺牲了平衡性(2logn高度),添加删除相对AVL树更有优势
    红黑树统计性能更优(综合增删改查所有的操作)- > TreeMap。

散列表

  1. 散列表是由数组,链表,红黑树等数据结构,构造的一种能够支持动态数据的存储和提取的结构。
  2. 散列表关键思想就是散列函数 通过关键码(key)生成一个散列值,这个值作为存储信息的链表的下标。
  3. 缺点:如果散列函数不好,或者所用数组太小,则链表长度则有可能很长。
  4. java中Hashmap实现:数组 + 链表 + 红黑树。红黑树则是优化链表过长的问题。

相关文章

  • 数据结构与算法

    常用数据结构与算法 - CSDN博客

  • python数据结构与算法总结

    python常用的数据结构与算法就分享到此处,本月涉及数据结构与算法的内容有如下文章: 《数据结构和算法对pyth...

  • 01. 数据结构与算法绪论

    一、数据结构 1. 什么是数据结构 2. 数据结构的分类 3. 常用的数据结构 4. 数据结构的应用表现 二、算法...

  • 数据结构与算法 - 查找

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构数据结构...

  • 思维导图之数据结构+算法

    数据结构+算法 = 程序 数据结构比较 参考文章 数据结构与算法数据结构与算法(java)

  • 数据结构与算法 - 树形结构

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构 目录 ...

  • 常用数据结构及算法

    数据结构与算法——常用排序算法及其Java实现 - QueenKing - SegmentFault 思否

  • 数据结构与算法学习开篇

    数据结构与算法知识图谱 20个最常用的、最基础数据结构与算法 10个数据结构:数组、链表、栈、队列、散列表、二叉树...

  • Android高级开发面试题

    一、Java 基础相关 1.1 数据结构与算法 1.1.1 常用的数据结构有哪些? 1.1.2 数组 (1).如何...

  • 最新完整数据结构与算法

    最新完整数据结构与算法 P11_课程介绍 P22_数据结构与算法概述_数据结构 P33_数据结构与算法概述_算法 ...

网友评论

      本文标题:算法与数据结构-常用数据结构(4)

      本文链接:https://www.haomeiwen.com/subject/rhwqshtx.html