数据结构——时间复杂度
🏖️专题:数据结构专题
🙈作者:暴躁小程序猿(原创)
⛺简介:双非本科大二小菜鸟一枚,希望和大家一起进步~
前言
本篇博客将涉及数据结构中时间复杂度的相关知识,包括什么是时间复杂度,时间复杂度的计算,时间复杂度的对比等,也正式意味着开始进入数据结构板块的学习。
一、什么是时间复杂度?
1.1算法效率
算法效率分析有两种:一种是时间效率,一种是空间效率。时间效率被称为时间复杂度,空间效率就是空间复杂度,时间复杂度主要衡量一个算法的运行速度,而空间复杂度主要衡量一个算法所需的额外空间。在计算机发展的早期,存储空间很小,所以往往需要考虑空间复杂度,但是随着计算机快速的发展,计算机的存储容量已经达到了很高的程度,所以我们往往不考虑空间复杂度。
1.2时间复杂度的概念
时间复杂度的定义:
在计算机科学中,算法的时间复杂度是一个函数,它定理描述了该算法的运行时间,一个算法执行所消耗的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道,但是我们每个算法都必须上机测试吗?太麻烦了,所以才有了时间复杂度这个分析方法,一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度
二、 大O的渐进表示法
代码如下(示例):
// 请计算一下Func1基本操作执行了多少次?
void Func1(int N)
{
int count = 0;
for (int i = 0; i < N ; ++ i)
{
for (int j = 0; j < N ; ++ j)
{
++count;
}
}
for (int k = 0; k < 2 * N ; ++ k)
{
++count;
}
int M = 10;
while (M--)
{
++count;
}
printf("%d\n", count)