数据结构基础

数据结构

算法的复杂度

算法的时间复杂度:指执行算法所需要计算的次数,也就是算法执行过程中所需要的基本运算次数。
算法的空间复杂度:指执行这个算法所需要消耗的内存空间。

二叉树的遍历

二叉树的三种遍历规则,可分为前序遍历、中序遍历和后序遍历。
前序遍历首先访问根结点,然后遍历左子树,最后遍历右子树(根左右);
中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树(左根右);
后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点(左右根);

二叉树的性质

1、在二叉树的第k层上最多有2(k-1)(k≥1)个结点。
2、深度为m的二叉树最多有2m-1(m≥1)个结点。
3、对于任何二叉树而言,度为0(终端叶子结点)的结点总是比度为2的结点多一个。
4、具有n个结点的二叉树深度至少为[log2n]+1,其中,[log2n]表示取 log2n向下取整的整体部分。
5、满二叉树在第k层上有2(k-1)个结点,深度为m的满二叉树有2m-1个结点。
6、完全二又树是指除了最后一层外,每一层上的所有结点都有两个子结点,在最后一层只缺少右侧的若干终端节点上只缺少右边的若干结点。完全二叉树中,度为1的结点个数,不是有0个或者就是1个。

线性表

性质:
1、有且只有一个头结点,它无前件;
2、有且只有一个尾结点,它无后件;
3、除头结点与尾结点外,其他所有结点有且只有一个前驱,也有且只有一个后继。线性表中结点的个数n称为线性表的长度。当 n=0时,称为空表。

顺序存储结构特点:
线性表中的元素所占的存储空间是连续的;
线性表中的元素在物理存储空间中是按逻辑顺序存放的。

排序

快排
快速排法在线性表中选取第一个元素P,将线性表中小于(大于)P的元素移到P的前面,大于(小于)P的元素移到P的后面。将线性表分割成两部分,使用此方法分别对分割后的数据进行递归快速排序,直到线性表变成有序序列。

希尔排序
希尔排序法将相隔某个增量n的元素构成一个子序列,对每个子序列都进行简单插入排序。在排序过程中逐渐减少增量,直到增量减为1时,元素插入到同一个组中,完成希尔排序。

冒泡排序法最坏情况下需要比较n(n-1)/2次,时间复杂度为O(n2)。
快速排序法最坏的情况下需要比较n(n-1)/2次,时间复杂度为O(n2)。
简单选择排序法最坏的情况下需要比较n(n-1)/2次,时间复杂度为O(n2)。
堆排序法最坏的情况下需要比较nlog2n次,时间复杂度为O(nlog2n)。
简单插入排序法最坏的情况下需要比较n(n-1)/2次,时间复杂度为O(n2)。
希尔排序在最坏情况下需要比较的次数为O(n1.5),希尔排序的效率与所选取的增量序列有关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值