• 数据类型


    数据结构

    定义:是计算机储存,组织数据的方式:

    数据结构可以分为:

    逻辑结构:面向问题

    物理结构:面向计算机

    逻辑结构 数据对象 数据元素之间的关系

    分类:集合结构,线性结构,树形结构,图形结构

    物理结构:数据 在 计算机的存储形势

    分类 : 顺序存储结构和链式存储结构

    顺醋存储结构 : 数据元素放在地址连续的存储


    算法: 解决特定问题求解步骤详细描述

    特此那个 : 输入 0个或者多个

    输出 : 输出

    有穷性, 确定性。可形性

    算法复杂度:

    算法的复杂度 时间复杂度 空间复杂度

    时间复杂度 衡量一个算法好坏的重要标准

    用 大O表示法

    常见的时间复杂度

    常数阶 O(1)<

    线性阶 O(n)<

    平方阶 O(n2)<

    立方阶 O(n3)<

    指数阶 O(2n)

    对数阶 O(logN)

    O(1)<O(logn)<O(n)<O()nlogn<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)

    列表内置的时间复杂度

    index O(1)

    append O(1)

    pop O(1)

    pop O(n)

    reverse O(n)

    insert(i) O(n)

    sort O(n log n)

    字典内置时间复杂度

    delete O(1)

    copy O(1)


    空间复杂度

    线性编: 具有0个或者多个数据元素的有限序列

    特征:

    第一个元素没有前驱

    最后一个元素没有后续

    其余的元素只有一个前驱和一个后续


    分类

    顺序表 计算机内存中以一组地址连续的存储单元 依次

    优缺点:

    优点:可以随机访问

    缺点:掺入删除需要一定大量数据元素造成空间碎片

    最好的时间复杂度O(1)

    最坏的时间复杂度O(n)

    Python中的顺序表 list tuple

    链表 实在每一个节点存放下个节点的位置信息(内存地址)

    分类: 单向链表

    是在链表中需简单的一种形式

    一个节点有两个域

    第一个是信息域(元素域) 里面存放的是数据

    第二个节点的节点域是个空域

    单向循环链表

    最后UI个节点的节点域不再为空 而是指向头节点


    双向链表

    一个节点有三个域

    第一个是 节点域(元素域)里面存放的是上一个节点的位置

    第二个是 信息域(元素域) 里面存放的是数据

    第三个是 节点域(元素域)里面存放的是下一个节点的位置


    栈:

    是仅允许在表尾进行插入删除的线性表

    特点先进后出


    队列:

    好比水管

    只允许在一端插入 另一端删除的线性表

    冒泡

    定义:

    就是把小的数字放在前面

    把相邻的两个数 进行比较 如果前面的数字大于后面的数字 进行交换位置


    选择

    定义:

    循环比较整个列表里比最小值小的数 然后交换位置 直到所有数据的位置都确定


    定义:是一种数据结构 存放数据的集合

    特点:

    1、只有一个根节点 没有父节点的节点就是根节点

    2、每一非根节点都有一个父节点

    3、每个节点都有零个或多个节点

    4、除了根节点外,每个子节点可以分为多个不相交的子树

    树的术语:

    节点的度:一个节点含有的子树的个数称为该节点的度;

    树的度:一棵树中,最大的节点的度称为树的度;

    叶节点或终端节点:度为零的节点;

    父亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;

    孩子节点或子节点:一个节点含有的子树的节点称为该节点的子节点;

    兄弟节点:具有相同父节点的节点互称为兄弟节点;

    节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;

    树的高度或深度:树中节点的最大层次;

    堂兄弟节点:父节点在同一层的节点互为堂兄弟;

    节点的祖先:从根到该节点所经分支上的所有节点;

    子孙:以某节点为根的子树中任一节点都称为该节点的子孙。

    森林:由m(m>0)棵互不相交的树的集合称为森林;

    树的种类:

    有序树

    二叉树 每一个节点最多有两个子节点

    完全二叉树

    平衡二叉树

    B树

    霍夫曼树

    排序二叉树

    无序树


    树的存储

    通常以 链式 存储


    树的应用场景

    AI算法

    mysql

    文件的目录系统

    路由协议

    xml 和 html

    二叉树

    定义: 每个节点最多只有两个子树的树结构

    分为左子树 和右子树

    完全二叉树 除了最后一层 其他层必须都是两个子节点 必须是从左往右依次排布

    满二叉树 每一个节点必须都是两个子节点


    二叉树的遍历

    方式:

    深度优先遍历

    分类:

    先序遍历 根节点 ---- 左子树----右子树

    中序遍历 左子树 ---- 根节点 --- 右子树

    后序遍历 左子树 ---- 右子树 --- 根节点

    广度优先遍历 ---- 层次遍历

    从上往下 从左往右依次遍历


    常见的数据结构 顺序表 链表 栈 队列 树


    二分法

  • 相关阅读:
    浅析C# new 和Override的区别
    用流打开open office ods 文件
    两个自己写的合并GridView 行的方法
    TSQL 日期格式化
    页面刷新后滚动条定位
    解决 TextBox 的 ReadOnly 属性为 true 时,刷新页面后值丢失的方法
    Sql server 查询条件中将通配符作为文字使用
    window.open 弹出页面回写父页面值及触发父页面Button事件
    注册光标丢失的事件
    模态对话框对父页面控件回写值
  • 原文地址:https://www.cnblogs.com/lishanglin/p/13357339.html
Copyright © 2020-2023  润新知