【自考】算法——时间复杂度汇总

简介: 【自考】算法——时间复杂度汇总

整理了自考《数据结构》中的所有时间复杂度,制作了如下几张表,便于对比和记忆,请笑纳。

 

时间复杂度

顺序表

单链表

求表长

O(1)

-

读表元素

O(1)

O(n)

定位

O(n)

O(n)

插入

O(n)

O(n)

删除

O(n)

O(n)

~ 深度优先搜索(邻接表) O(n+e)
深度优先搜索(邻接矩阵) O(n2)
~ 拓扑排序 O(n+e)
查找表 二分查找法 O(log2n)

 

排序算法

直接插入

冒泡排序

快速排序

直接选择

堆排序

二路归并

时间复杂度

O(n2)

最好O(n)|O(n2)

平均O(nlog2n)|最坏O(n2)

O(n2)

O(nlog2n)

O(nlog2n)

稳定性

稳定

稳定

不稳定

不稳定

不稳定

稳定

 

       常见时间复杂度排序:

        O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(Cn)(指数阶)

       时间复杂度,填空和选择会有不少于8分的题目。除了上述书中列出的,还有给一小段程序,让自己计算的。

       时间复杂度的计算,从出题的规律来看,莫不是O(√n)、O(n)、O(log2n)、O(n2)、O(n3)这几种之一。

   除了按照常规方法计算基本运算的次数之外,考试中时间复杂度的题也很有规律性。

   1、看有几层循环,一层循环,是O(√n)或者O(log2n)或者O(n)两层循环,是O(n2);三层循环,是O(n3)。(一般规律如此,具体问题具体分析)

   2、一层循环中到底是哪一个,对照下面代码,很快就能总结出来。

   判断一下这几段程序的时间复杂度是多少?

1

1. for(i=1;i<=n;i++)
2. {
3.     m++;
4. for(j=1;j<=n;j++)
5.         k*=m;
6. }

2、

1. for (i=1; i<=n; i++)
2. for (j=1; j<=n; j++)
3. for (k=1;k<=n;k++)
4.             x++;

3、

1.    i=0;s=0;
2. while(s<n)
3.    { i++;
4.       s=s+i;
5.     }

4、

1.    i=0;s=0;
2. while(i<n)
3.    { i++;
4.      s=s+i;
5.    }

5、

1.    i=1; 
2. while(i<n)  
3.        i=i*2;

6、下边这是一个变种,看看它的时间复杂度是多少?

1. for ( int i=0; i<m; i++)
2. for ( int j=0; j<n; j++)
3.         a[i][j]=i*j;

 

 

————————————————

答案:1、O(n2) 2、O(n3) 3、O(√n) 4、O(n) 5、O(log2n)6、O(mn)

你的答案对吗?


相关文章
|
2月前
|
机器学习/深度学习 缓存 算法
Python算法设计中的时间复杂度与空间复杂度,你真的理解对了吗?
【10月更文挑战第4天】在Python编程中,算法的设计与优化至关重要,尤其在数据处理、科学计算及机器学习领域。本文探讨了评估算法性能的核心指标——时间复杂度和空间复杂度。通过详细解释两者的概念,并提供快速排序和字符串反转的示例代码,帮助读者深入理解这些概念。同时,文章还讨论了如何在实际应用中平衡时间和空间复杂度,以实现最优性能。
80 6
|
4月前
|
机器学习/深度学习 算法 程序员
读《趣学算法》:重开算法之门,时间复杂度与空间复杂度
本文是作者阅读《趣学算法》后的笔记,介绍了算法复杂度的基本概念,包括时间复杂度和空间复杂度的不同阶表示,并通过具体例子展示了如何计算和理解算法的效率。
71 2
读《趣学算法》:重开算法之门,时间复杂度与空间复杂度
|
2月前
|
搜索推荐 算法
插入排序算法的平均时间复杂度解析
【10月更文挑战第12天】 插入排序是一种简单直观的排序算法,通过不断将未排序元素插入到已排序部分的合适位置来完成排序。其平均时间复杂度为$O(n^2)$,适用于小规模或部分有序的数据。尽管效率不高,但在特定场景下仍具优势。
|
5月前
|
机器学习/深度学习 存储 算法
颠覆认知!Python算法设计中的时间复杂度与空间复杂度,你真的理解对了吗?
【7月更文挑战第22天】在Python算法设计中,时间与空间复杂度是评估算法效能的核心。时间复杂度不仅限于大O表示法,还涵盖平均与最坏情况分析。空间复杂度虽关注额外存储,但也反映内存效率。平衡二者需视场景而定,如利用原地算法减少内存消耗,或牺牲空间加速执行。算法优化技巧,如分治与动态规划,助你在资源与速度间找寻最优解,从而高效应对大数据挑战。
57 3
|
2月前
|
机器学习/深度学习 存储 缓存
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
文章主要介绍了排序算法的分类、时间复杂度的概念和计算方法,以及常见的时间复杂度级别,并简单提及了空间复杂度。
45 1
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
|
2月前
|
存储 算法
算法的时间复杂度和空间复杂度
本文详细讨论了算法的时间复杂度和空间复杂度,包括它们的概念、计算方法和常见复杂度的对比,并通过多个实例解释了如何计算算法的时间和空间复杂度。
173 0
算法的时间复杂度和空间复杂度
|
3月前
|
算法 Python
震惊!Python 算法设计背后,时间复杂度与空间复杂度的惊天秘密大起底!
在 Python 算法设计中,理解并巧妙运用时间复杂度和空间复杂度的知识,是实现高效、优雅代码的必经之路。通过不断地实践和优化,我们能够在这两个因素之间找到最佳的平衡点,创造出性能卓越的程序。
45 4
|
2月前
|
算法 C语言
深入理解算法效率:时间复杂度与空间复杂度
深入理解算法效率:时间复杂度与空间复杂度
|
4月前
|
机器学习/深度学习 存储 算法
算法时间复杂度分析
这篇文章讲解了如何分析算法的时间复杂度,包括关注循环执行次数最多的代码段、总复杂度的确定、嵌套代码复杂度的计算方法,并提供了大O阶的推导步骤和常见时间复杂度的列表,同时还介绍了空间复杂度的概念及其重要性。
|
4月前
|
搜索推荐
九大排序算法时间复杂度、空间复杂度、稳定性
九大排序算法的时间复杂度、空间复杂度和稳定性,提供了对各种排序方法效率和特性的比较分析。
199 1