竞赛基础|复杂度分析

1.复杂度的定义:

复杂度:复杂度程序运行时间数据规模 增长而产生的变化趋势;

常见的复杂度(x轴为数据规模,y轴为程序运行时间):

常见复杂度大小关系:

O(1)<O(log2n)<O(sqrt(n))<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)<O(n!)

2.如何从推出程序的复杂度

比如:

for(i=0;i*i<n;i++)
{
    ....
}

设for语句执行次数为k,for每次执行时间为t,然后从程序可以看出数据规模为n;

i*i<n即i<根号n,也就是说for语句执行次数大概为根号n,即k约等于根号n,那么程序运行时间约为sqrt(n)*t,也就是这段程序的复杂度为O(sqrt(n))

3.常见复杂度

常数阶:O(1)(程序中不包含循环及递归)

线性阶:O(n)

平方阶:O(n∗n)

对数阶:O(log2n)

根号阶:O(√n)

O(n∗(n+m))

并列语句的执行趋势是相加的
包含语句的执行趋势是相乘的
但如果m改为n那么O(n∗n)

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C程序设计竞赛题集是由《算法竞赛入门经典》作者刘汝佳编写的一本算法竞赛题集。该书收录了大量的算法竞赛题目,包括基础算法、数据结构、贪心算法、动态规划、字符串处理等多个方面的内容,这些题目都是来自于各个大型编程比赛和实际编程项目中的经典案例。 C程序设计竞赛题集的题目难度从易到难逐渐递增,对于初学者来说,可以学习和掌握基本的编程技巧,并且逐渐提高自己的水平。对于已经有一定编程经验的人来说,这本书可以帮助他们解决实际的编程问题,并且提高算法的实现能力。 除了提供各类算法实现的经典案例之外,C程序设计竞赛题集还包含了详细的解题思路和详解,这对于独立思考和自己尝试解决问题非常有帮助。此外,该书也提供了在线评测系统和部分习题的官方解答,可以帮助读者更好的学习和提高。 总之,C程序设计竞赛题集是一本非常重要的编程题集,对于想要学习和提高算法竞赛能力的人来说,这本书是必不可少的参考书籍之一。 ### 回答2: "C程序设计竞赛题集" 是一本由中国著名程序员刘汝佳编写的程序设计竞赛题集。这本书分为基础篇、提高篇和数据结构篇三个部分。基础篇主要涉及编程基础和算法基础;提高篇增加复杂度较高的算法,并从多个角度分析对算法的优化;数据结构篇主要讨论了树、图、字符串、数据结构设计等。 "C程序设计竞赛题集"不仅是一本程序员必备的参考书,也适合初学者在学习算法和数据结构时参考,可以提高他们解决复杂问题的能力,虽然编程能力并不在大学排名考核之际,但计算机编程已经成为了各领域越来越重要的一项技能,能够为大众生活工作提供更加便捷的服务,参考这本书提高自己的编程能力就有利于开拓更多的事业机会,提高自己的市场价值。 总的来说, "C程序设计竞赛题集" 是一本内容较为全面的参考书,里面的题目已经得到广泛认可和应用,并且也对算法和数据结构的学习有帮助。这本书适合程序员、计算机领域的工作者和对计算机有兴趣的初学者参考阅读。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值