首页 > 其他分享 >时间复杂度如何计算?

时间复杂度如何计算?

时间:2023-08-04 17:46:42浏览次数:33  
标签:语句 return 案例 int 复杂度 如何 计算 执行

1.O(1)

在这个案例中, println语句执行1次, return 0语句执行1次,语句共执行2次。常数的时间复杂度为O(1)。

int func1(){
    println("Hello,world");//执行1次
    return 0;
}

2.O(n)

在这个案例中,int i语句执行1次,i<n语句执行n+1次(最后1次是不符合判断),i++语句执行n次 ,println语句执行1*n次, return 0语句执行1次,语句共执行3n+3次。时间复杂度为O(n)。

int func2(int n){
    for(int i=0;i<n;i++){
        println("Hello,world");
    }
     return 0;
}

3.O(n^2)

在这个案例中,for(int j;j<n;i++)循环大概执行n次,for(int i;i<n;i++)循环大概执行n次, return 0忽略不计,语句共执行n*n次。时间复杂度为O(n^2)。

int func3(){
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            println("Hello,world");
    }
    return 0;
}

4.O(n^2)

在这个案例中,i=0时,for(int j=i;j<n;j++)大概执行n次;i=1时,for(int j=i;j<n;j++)大概执行n-1次;i=2时,for(int j=i;j<n;j++)大概执行n-2次.......return 0忽略不计,语句共执行(n-1)+(n-2)+(n-3)+......+2+1=n*(n+1)/2次。时间复杂度为O(n^2)。

int func4(){
    for(int i=0;i<n;i++){
        for(int j=i;j<n;j++){
            println("Hello,world");
    }
    return 0;
}

5.O(logn)

在这个案例中,i=1,i=2,i=4,i=8......i=n,return 0忽略不计,语句共执行log2n次。时间复杂度为O(logn)。

int func4(){
    for(int i=1;i<n;i*=2){
        println("Hello,world");
    return 0;
}

标签:语句,return,案例,int,复杂度,如何,计算,执行
From: https://www.cnblogs.com/tsin/p/17606580.html

相关文章

  • 内容自动化如何提升您的营销
    如果您通过此页面上的链接购买商品,我们可能会从我们的联盟合作伙伴那里赚钱。内容自动化是使用软件定期创建、发布和分发内容的过程。它可以帮助您节省时间、覆盖更广泛的受众并提高内容质量。如果您希望节省时间、吸引更广泛的受众并提高内容质量,那么内容自动化是您的绝佳选择......
  • 如何使用Disruptor(二)如何从Ringbuffer读取(转)
    ConsumerBarrier与消费者这里我要稍微反过来介绍,因为总的来说读取数据这一过程比写数据要容易理解。假设通过一些“魔法”已经把数据写入到RingBuffer了,怎样从RingBuffer读出这些数据呢?(好,我开始后悔使用Paint/Gimp 了。尽管这是个购买绘图板的好借口,如果......
  • 如何使用 Disruptor(三)写入 Ringbuffer(转)
    本文的 重点 是:不要让Ring重叠;如何通知消费者;生产者一端的批处理;以及多个生产者如何协同工作。ProducerBarriersDisruptor 代码给 消费者 提供了一些接口和辅助类,但是没有给写入RingBuffer的 生产者 提供接口。这是因为除了你需要知道生产者之外,没有别人需要访问它。......
  • Linux系统服务器启动SSH服务时出现“error while loading shared libraries”错误该如
    问题描述本文主要介绍在Linux系统服务器启动SSH服务时,命令行或secure日志文件出现类似如下的错误信息。· errorwhileloadingsharedlibraries:libcrypto.so.10:cannotopensharedobjectfile:Nosuchfileordirectory.· PAMunabletodlopen(/usr/lib64/security/pam......
  • 类Hadoop的高效分布式计算系统Spark
    Spark是UCBerkeleyAMPlab所开源的类HadoopMapReduce的通用的并行计算框架,Spark基于mapreduce算法实现的分布式计算,拥有HadoopMapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习......
  • 如何用C#在PC上查找连接蓝牙设备并实现数据传输
    在PC端用.NET开发一个蓝牙下载的程序。实现在PC上查找周围的蓝牙设备(主要是手机),并将PC上的文件通过蓝牙传输到手机上。目前我采用的是OpenNETCF.Net.Bluetooth,能够正常发现周围的蓝牙设备,手机也能够正常进行蓝牙连接并接收文件。#regionOBEXOpenStreampublicboolOBEXOpenStre......
  • 如何在python中执行另一个py文件
    使用命令:os.system(‘pythonfile_name.py’)解释:os.system是执行当前的系统命令1、拿windows系统举例:#由于ipconfig/all在windows中是查看ip地址#所以将此命令运行在os.system中,即可查看系统的ip地址等信息importosos.system('ipconfig/all')#因为pythonfile_name.p......
  • 鱼佬&阿水竞赛相声:我是如何2小时杀进排名前10%的!
     Datawhale干货 鱼佬,武汉大学硕士;阿水,北京航空航天大学硕士鱼佬:Datawhale成员,数据竞赛爱好者,多个赛事冠亚军选手,其中2019年获得腾讯广告算法大赛冠军,2020年获得DCIC智慧海洋建设赛冠军。阿水:Datawhale成员,擅长计算机视觉,天池数据大神,知乎全网阅读量20W+,数据竞赛学习开源项目发起......
  • linux如何安装Java环境
    ❝本篇主要讲一下在linux上如何安装Java环境,widows安装方法之前已经有了,请查看之前的文章!❞安装包的方式这里推荐下载JAVA8,下载地址放到最后,要注册Oracle账号才能下载,当然也可以从其他方式下载。不建议使用这种,因为过程比较麻烦!查看linux版本getconfLONG_BIT#输出64版本号下载......
  • linux如何安装Java环境
    ❝本篇主要讲一下在linux上如何安装Java环境,widows安装方法之前已经有了,请查看之前的文章!❞安装包的方式这里推荐下载JAVA8,下载地址放到最后,要注册Oracle账号才能下载,当然也可以从其他方式下载。不建议使用这种,因为过程比较麻烦!查看linux版本getconfLONG_BIT#输出64版本号下载......