算法的复杂度重要涉及时间复杂度和空间复杂度
算法的时间复杂度是指执行算法所需要的计算工作量
算法的空间复杂度是指执行这个算法所需要的内存空间
一种数据的逻辑结构根据需要可以表达成多种存储结构
而采纳不同的存储结构,其数据解决的效率是不同
线性结构又称线性表,线性结构与非线性结构都可以是空的数据结构
线性表的顺序存储结构具有以下两个基本特点:①线性表中所有元素所占的存储空间是连续的;②线性表中各数据元素在存储空间中是按逻辑顺序依次存放的
栈是一种特别的线性表,在这种线性表的结构中,一端是封闭的,不允许进行插入与删除元素;另一端是开口的,允许插入与删除元素
先进后出或后进先出
队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表
后进后出或先进先出
队列的顺序存储结构一般采纳循环队列的形式
元素变动频繁的大线性表不宜采纳顺序存储结构,而是采纳链式存储结构
在链式存储方式中,规定每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域
树(tree)是一种简朴的非线性结构
属于层次模型
二叉树通常采纳链式存储结构14
二叉树的基本性质性质1在二叉树的第k层上,最多有2k-1(k≥1)个结点
性质2深度为m的二叉树最多有2m-1个结点
性质3在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个
二叉树的遍历可以分为三种:前序遍历(中前后)、中序遍历(前中后)、后序遍历(前后中)
a) 对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次
在最坏情况下,冒泡排序需要比较次数为n(n-1)/2
在最坏情况下,简朴插入排序需要n(n-1)/2次比较
在最坏情况下,堆排序需要比较