数据结构与算法必备知识点:复杂度复杂度

数据结构与算法必备知识点:复杂度

一般来说,复杂度可以分为 时间复杂度空间复杂度 ,有时还会有 编码复杂度

1.时间复杂度

时间复杂度是算法需要执行基本运算的次数所处的等级。基本运算类似于加减乘除这种计算机可以直接实现的运算。

举个简单的例子,下面是一个for循环,用来计算数组a中元素的和:

for(int i =0 ; i < n; i++){
    sum = sum + a[i];
}

就这段代码来说,for循环执行了n次,因此共有n次运算,而下面的代码加了两次a[i],因此共有2n次运算。

for(int i =0 ; i < n; i++){
    sum = sum + a[i];
    sum = sum + a[i];
}

n次基本运算与2n次基本运算当n的规模增大时的增长趋势都是相同的(都是线性增长),所以把 O(n) 称作上面两段代码的时间复杂度

再来看一段代码:

for(int i = 0; i < n; i++){
    for(int j = 0; j < n; j++){
        sum += a[i][j];
    }
}

这段代码的时间复杂度为 O( n 2 n^2 n2), 基本运算次数为 n 2 n^2 n2

在时间复杂度中,高等级的幂次会覆盖低等级的幂次,
因此 O( 3 n 2 3n^2 3n2+n+2) = O( 3 n 2 3n^2 3n2) = O( n 2 n^2 n2) 成立

除了上面这些,还有各种各样的时间复杂度。常数复杂度 O(1) 表示算法消耗的时间不随规模的增长而增长。

常用时间复杂度的大小比较:
O(1)<O( l o g n log_n logn)<O(n)<O( n 2 n^2 n2)

2.空间复杂度

和时间复杂度类似的写法,表示算法需要消耗的最大数据空间
例如对于某个算法来说,如果其消耗的最大数据空间是一个二维数组,那么这个算法的空间复杂度是O( n 2 n^2 n2)

3.编码复杂度

编码复杂度是一个定性的概念,并没有什么量化的标准。对于一个问题来说,如果用了冗长的算法思想,那么代码量就会非常巨大,其编码复杂度就会非常大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
数据结构与算法是计算机科学中非常重要的知识领域,它们对于开发高效和优化的软件系统至关重要。下面是一些数据结构与算法的重要知识点: 1. 数组(Array):一个有序元素集合,可以通过索引来访问其中的元素。 2. 链表(Linked List):由节点组成的线性数据结构,每个节点包含一个值和指向下一个节点的指针。 3. 栈(Stack):一种遵循后进先出(LIFO)原则的数据结构,只允许在栈顶进行插入和删除操作。 4. 队列(Queue):一种遵循先进先出(FIFO)原则的数据结构,允许在队尾插入元素,在队头删除元素。 5. 哈希表(Hash Table):根据键(key)直接访问值(value)的数据结构,通过散列函数将键映射到特定的存储位置。 6. 树(Tree):一种非线性数据结构,由节点和边组成,每个节点可以有多个子节点。 7. 图(Graph):由节点和边组成的非线性数据结构,节点之间可以相互连接形成任意的关系。 8. 排序算法(Sorting Algorithm):用于将一组数据按照特定的顺序进行排列的算法,如冒泡排序、快速排序等。 9. 查找算法(Searching Algorithm):用于在一组数据中查找指定元素的算法,如线性查找、二分查找等。 10. 算法复杂度(Algorithm Complexity):用来衡量算法执行效率的指标,包括时间复杂度和空间复杂度。 这些只是数据结构与算法中的一部分知识点,深入学习和理解这些知识将有助于你开发更高效的软件系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值