二级MS Office高级应用——算法

时间:2022-09-03 06:40:34

算法的一些常见的基本概念
- 算法的空间复杂度:是指算法在执行过程中所需要的内存空间
- 算法的时间复杂度:是指执行算法所需要的计算工作量
算法的时间复杂度和空间复杂度之间没有直接的关系

  • 算法的效率与问题的规模数据存储都有关
  • 数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此数据的逻辑关系和存储结构不是一 一 对应的。
  • 程序的执行效率与数据的存储结构、数据的逻辑结构、程序的控制结构,所处理的数据量等有关。

关于栈的基本知识

  • 栈的修改原则:先进后出,所以栈顶元素总是最后插入的元素,而栈底元素是第一个插入的元素。而且栈只能在栈顶这一端插入和删除元素,先进去的数据被压入栈底,最后放进的数据存栈顶,当需要读取的数据的时候从栈顶开始弹出数据。当栈中元素的个数为零个时我们称栈此时为空栈。插入操作称为进栈(PUSH),删除操作称为退栈(POP)。这个不住这些概念的同学,可以把栈想象成我们在洗碗的时候往上叠的碗。如下图,是不是感觉很像啦!
    二级MS Office高级应用——算法
  • 例子:一个栈的初始状态为空。现将元素按照1,2,3,A, B,C 依次入栈,然后再依次出栈,那么元素的出栈的顺序是:C,B,A,3, 2, 1

关于队列的基本知识
- 队列的修改原则是:先进先出(先到先服务),为了方便记忆我把队列想象成一条隧道。第一进去的人就会是第一个出来的人。队列也是一种特殊的线性表,它只允许在队头(front)进行删除操作,在队列的尾部(rear)进行插入操作。当队列中没有元素时,称为空队列。
- 顺序队列:建立顺序队列结构时必须为其分配或者是动态申请一片连续的存储空间,并且设置队头指针front(指向队列中的头元素)和队尾指针rear(指向下一个入队元素所存储的位置)进行管理。
二级MS Office高级应用——算法
- 循环队列:循环队列中的元素的个数是随着队头指针和队尾指针的变化而变化。(原因:在 循 环 队 列 中 ,用 队 尾 指 针 rear指 向 队 列 中 的队 尾 元 素 ,用 排 头 指 针 front指 向 排 头 元 素 的 前 一 个 位 置 。因 此 ,从 排 头 指 针 front指 向 的 后 一 个 位 置 直 到 队 尾 指 针rear指 向 的 位 置 之 间 所 有 的 元 素 均 为 队 列 中 的 元 素 . 所 以循 环 队 列 中 的 元 素 个 数 与 队 头 指 针 和 队 尾 指 针 的 变 化 而 变
化)