数据类型

数据结构

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

数据结构可以分为:

逻辑结构:面向问题

物理结构:面向计算机

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

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

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

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

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


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

特此那个 : 输入 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

二叉树

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

分为左子树 和右子树

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

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


二叉树的遍历

方式:

深度优先遍历

分类:

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

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

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

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

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


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


二分法

原文地址:https://www.cnblogs.com/lishanglin/p/13357339.html