1、对长度为n的线性表排序,在最坏的情况下:
比较次数为nlog2n的排序方法:堆排序(比较次数最少);
比较次数是n(n-1)/2的排序方法是:快速排序、直接插入排序、冒泡排序。
希尔排序:nr(1<r<2)。
2、栈:按照“先进后出”或“后进先出”的原则组织数据(出栈与进栈顺序相反),队列是先进先出,只能在栈顶这一端插入和删除数据(栈顶元素最先被删除;当栈中只剩下栈底一个元素时,栈底元素也可被删除)。栈底元素最先入栈,栈顶元素最后入栈。
在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化。
非线性结构无所谓进出顺序。
3、算法复杂度:
时间复杂度:执行算法所需要的计算工作量(基本运算次数);
空间复杂度:执行这个算法所需要的内存空间(包括算法程序所占的空间、输入的初始数据所占的空间以及算法执行过程中所需要的额外空间,包括临时工作单元)
4、 二叉树具有以下几个性质:
性质 1:在二叉树的第 k 层上,最多有 2^(k-1)(k≥1)个结点。
性质 2:深度为 m 的二叉树最多有 2^m-1 个结点。
性质 3:在任意一棵二叉树中,度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个。
性质 4:具有 n 个结点的二叉树,其深度至少为[log2n]&