满二叉树和完全二叉树
1.满二叉树:除最后一层外,每一层上的所有结点都有两个子结点,满二叉树在其第I层上有2^(I-1)个结点,二叉树的每一层的结点数都必须达到最大,否则就不是满二叉树,深度为m的满二叉树有2^(m-1)个结点
2.完全二叉树:除最后一层外,每一层的结点数均达到最大,在最后一层上只缺少右边的若干结点
一棵具有n个结点的深度为k的二叉树,它的每一个结点都与深度为k的满二叉树中编号为1-n的结点一一对应
3.二叉树的存储结构:二叉树通常用链式存储结构 ,存储结点由数据域和指针域(左指针域和右指针域)组成。二叉树的链式结构也称为二叉链表,对满二叉树和完全二叉树可按照层次进行顺序存储
二叉树的遍历
二叉树的遍历是指不重复地访问二叉树中所有结点,主要是指非空二叉树,对于空二叉树则结束访问,二叉树的遍历包括前序遍历,中序遍历,后续遍历
查找技术
1.顺序查找:在线性表中查找指定的元素
最坏情况下,最后一个元素才是要找的元素,则需要与线性表中所有元素比较,比较次数为n
2.二分查找:二分查找也称为折半查找,它是一种高效率的查找方法,但二分查找有条件限制:必须用顺序存储结构,且表中的元素必须按照关键字有序(升序或降序均可)排列,对长度为n的有序线性表,在最坏的情况下,二分查找只需要比较log2N次
排序技术
交换类排序法
冒泡排序:通过对待排序序列从后向前或者从前向后,依次比较相邻元素的排序码,若发现逆序则交换,使较大的元素逐渐从前部移向后部或者较小的元素逐渐从后部移向前部,直到所有元素有序为止
最坏比较次数:n(n-1)/2
最好时间复杂度:O(n)
最坏时间复杂度:O(n^2)
快速排序法:所有内排序算法中速度最快
最坏时间效率:O(n^2)
平均时间效率:O(nlog2N)
插入类排序法
简单插入排序法
最坏比较次数:n(n-1)/2
最坏时间复杂度:O(n^2)
最坏移动次数:n(n-1)/2
希尔排序法
最坏时间复杂度:O(n^1.5)
选择类排序法
简单选择排序法
最坏比较次数:n(n-1)/2
时间复杂度:O(n^2)
堆排序法
最坏比较次数:O(nlog2N)
网友评论