数据结构

作者: _ClariS_ | 来源:发表于2019-07-22 19:16 被阅读3次

排序的原则:要么浪费空间,要么浪费时间,不可能既节省空间又节省时间(二选一)

  1. 哈希(Hash)
    只能排[0,∞)的正整数,不能排负数和小数,排序中间过程需要一个哈希表(桶),不是比较排序;
    计数排序(桶排序)优于比较排序;
    数组长度 length 的值为 index 里的最大值+1,例如index=66,则长度length=67;
    计数排序中的桶(复杂度 O(n+max),比快排还快。
  • 计数排序——浪费桶(空间)
  • 桶排序——节约空间(桶自由规定),浪费时间(桶内部还需要进行排序)
  • 基数排序——桶(这里的桶也是队列)个数固定(0~9),适合排比较大的数
  1. 队列(Queue)
  • 先进先出
  • 可以用数组实现
  • push(入队)—— shift(出队)
  1. 栈(Stack)
  • 先进后出
  • 可以用数组实现
  • push(入栈)——shift(出栈)
  1. 链表(Linked List)
  • 数组无法直接删除中间的一项,链表可以;若数组要删除中间项,后面的项要挨个往前移动,变动很大;数组查询很快,链表删除很快。
  • 用哈希(JS里面用对象表示哈希)实现链表
  • head(链表头)、node(结点) 概念


  1. 树(tree)
  • 由链表构成
  • 举例:层级结构、DOM
  • 概念:层数、深度、节点个数
    二叉树的第 i 层最多有 2^(i-1)个节点数
    深度为 k 的二叉树最多总共有 2^(k+1)-1个节点数
  • 二叉树
  • 满二叉树
  • 完全二叉树

    在一颗二叉树中,除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干接点,则此二叉树为完全二叉树

  • 完全二叉树和满二叉树可以用数组实现
  • 其他树可以用哈希(对象)实现
  • 操作:增删改查
  • 堆排序用到了 tree
  • 其他:B树、红黑树、AVL树
    堆排序可视
  1. 堆排序
    堆排序可视化(最大堆)
    堆排序JS代码讲解

相关文章

  • IOS开发_数据结构

    1、数据结构; 2、算法; 3、数据结构与算法; 1、数据结构; 1.1 概念: 数据结构:数据结构是计算...

  • py基础

    5Python集合容器 数据结构数据结构 一般将数据结构分为两大类: 线性数据结构和非线性数据结构。 线性数据结构...

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

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

  • 数据结构与算法分析:大纲]

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 本系列课程主要...

  • 数据结构:数组

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 数组 数组是一...

  • 数据结构—概述

    数据结构概述 数据结构概述:程序设计 = 数据结构 + 算法数据结构:数据元素之间存在所有特定关系的集合,数据结构...

  • OVS 源码分析整理

    OVS 核心代码 OVS 架构 OVS 主要的数据结构数据结构关系图主要的数据结构和数据结构的参数数据结构代码 d...

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

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

  • 数据结构与算法 - 查找

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

  • C#之数据结构(上)

    数据结构 一般将数据结构分为两大类: 线性数据结构和非线性数据结构。 线性数据结构有: 线性表、栈、队列、串、数组...

网友评论

    本文标题:数据结构

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