目录
一、算法
1、定义:在计算机领域里,算法是一系列程序指令,用于处理特定的运算和逻辑问题。
2、应用领域
(1)运算
(2)查找
(3)排序
(4)最优决策
3、衡量算法好坏的重要标准有两个:时间复杂度和空间复杂度
二、时间复杂度
1、时间复杂度是对一个算法运行时间长短的度量,用大O表示。
2、一些常见的大O运行时间:
O(1)
O(log n):对数时间,-->二分算法;
O(n):线性时间 ——>简单查找
O(n*log n) ---->快速排序;
O(n^2)---->选择排序;
O(n!):阶乘时间----->旅行商问题的解决方法
从上往下时间复杂度从低到高排序。
三、空间复杂度
空间复杂度是对一个算法在运行过程中临时占用存储空间大小的度量,它同样使用了大O表示法。
1、常量空间:O(1)
2、线性空间:O(n)
3、二维空间:O(n^2)
4、递归空间:O(n)(递归算法的空间复杂度和递归深度成正比)
递归代码在计算机执行程序时,会专门分配一块内存,用来存储“函数调用栈”。函数调用栈包括进栈和出栈两个行为。
四、数据结构
1、定义:数据的组织、管理和存储格式,其使用的是高效的访问和修改数据
2、组成方式:
(1)线性结构:数组、链表、栈、队列、哈希表
(2)树
(3)图
(4)其他数据结构