说说算法的理解?
算法就是解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
不同的算法可能用不同的时间、空间或者效率完成任务。
说说时间复杂度和空间复杂度?
时间复杂度:是指执行当前算法所消耗的时间;
空间复杂度:是指当前算法需要占用多少内存空间;通常来说,只要算法不涉及到动态分配的空间,以及递归、栈所需的空间,空间复杂度通常为 O(1),一个一位数组 a[n],空间复杂度 O(n),二维数组为 O(n^2)
说说对数据结构的理解?
常见的数据结构:
- 数组
- 栈:先进后出
- 队列:先进先出
- 链表:是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
一般情况,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域
树
- 树
- 图
- 堆
- 散列表
说说你对树的理解?
二叉树:
- 本身是有序树
- 树中包含的各个结点不能超过 2,即只能是 0、1 或者 2
满二叉树、完成二叉树
前序:根左右
中序:左根右
后序:左右根