数据结构与算法(一)- 相关概念介绍

101 阅读1分钟

日常开发中,合适的数据结构 + 算法思路,能有效帮助我们提升程序的运行效率,并节省资源空间。

这里,我们先来介绍下学习数据结构和算法需要了解的基本概念。

算法复杂度

算法复杂度一般用时间复杂度空间复杂度来计算,用 Big O 表示法来表示。

常用概念解释:

T(n):代码执行时间

n:数据规模

f(n):每行代码执行次数总和

O:代码的执行时间,与f(n)成正比

常用的表示法及示例

O(1):常量

数组中,通过下标找元素

O(log n):对数

有序数组中,使用二分查找

O(n):线性

无序数组中,查找一个元素

O(n log n):线性对数

归并排序、堆排序

O(n^2):平方

选择排序、插入排序、冒泡排序

O(2^n):指数

找出一个列表的所有子集

O(n!):阶乘

找出一个列表的所有排列

总结

  1. 基于现在硬件性能的提升,大多数情况下我们其实更关注的是时间复杂度;

  2. 相同的操作(取值、更新、插入、删除等)使用不同的数据结构,算法复杂度也会呈现不同的结果;