首页 > 编程语言 >算法复杂度

算法复杂度

时间:2022-08-31 17:36:24浏览次数:68  
标签:... return int 复杂度 次方 算法 fun void

递归

普通情况,n只进行加减,多少的 n 次方,取决于返回几个

void fun(int n)
{
    ...
    return fun(n-1)
}

上面的就是 O(n)

void fun(int n)
{
    ...
    return fun(n-1) + fun(n-2);
}

上面的就是 O(2 n),因为每次都是分裂成为两个,所以是 2 的 n 次方。

void fun(int n)
{
    ...
    return fun(n-1) + fun(n-2) + fun(n-3);
}

上面的就是 O(3 n),因为每次都是分裂成为三个,所以是 3 的 n 次方。

特殊情况:n 涉及到乘除

void fun(int n)
{
    ...
    return fun(n / 2)
}

上面的就是 O(log2 n), 因为每次都要除以2,所以用几次,取决于 n 是 2 的多少次方,也就是以 2 为底,求 log.

循环

普通循环,n 只设计加减,n 的多少次方,取决于循环的层数

void fun()
{
    for (int i = 0; i < n + 1; i++) {}
}

上面就是 O(n)

void fun()
{
    for (int i = 0; i < n + 1; i++) {
        for (int j = 0; j < m - 1; m++) {}
    }
}

上面就是 O(n 2),因为是两层循环,所以是 n 的平方。

特殊情况,n 涉及到乘除

void fun()
{
    for (int i = 0; i < (1 << n); i++) {}
}

上面就是 O(2 n),因为 n 进行了移位的操作,所以相当于是 2 的 n 次方,所以结果就是 2 的n次方。

参数:

算法复杂度分析
https://www.cnblogs.com/gaochundong/p/complexity_of_algorithms.html

标签:...,return,int,复杂度,次方,算法,fun,void
From: https://www.cnblogs.com/ramlife/p/16643849.html

相关文章

  • 算法 - 螺旋矩阵 II
    59.螺旋矩阵II这道题困扰了我很久,一些边界值控制比较繁琐,但是偶然发现按照以下方法写,在Leetcode可以AC。classSolution{publicstaticint[][]generateMatrix(......
  • mysql设置密码复杂度
    MySQL密码复杂度策略设置MySQL系统自带有validate_password插件,此插件可以验证密码强度,未达到规定强度的密码则不允许被设置。MySQL5.7及8.0版本默认情况下貌似都......
  • Gosper's Hack 算法
    XIN队算法之枚举组合.枚举组合的一个非递归做法叫Gosper'sHack算法,思路就是对每个组合,用01串表示其选或不选,这样必然可以表示所有组合.我们考虑如何生成一个组合......
  • 字节对齐算法
    字节对齐算法字节对齐是在分配内存时需要考虑的问题,两个小算法:(1)最容易想到的算法:1unsignedintcalc_align(unsignedintn,unsignedalign)2{3if(n/......
  • 问题 N: Number Multiplication --Pollard-Rho算法质因数分解
    问题N:NumberMultiplication题意:给你m个M点,n个N点,M都是质数,N是和它相连的M的乘积,然后告诉你每个N点的值,求M点直接对每个N分解质因数即可,测试欧拉筛筛到4e7再......
  • 机器学习和 Python 中的贷款偿还预测(决策树算法)。
    机器学习和Python中的贷款偿还预测(决策树算法)。资源→我需要了解我的客户是否会归还他们从我的银行获得的贷款。问题陈述:-使用python中的决策树算法预测客户是否......
  • 使用js实现5种加密解密算法(凯撒密码、字母倒排序、单表置换、维基利亚、转换加密算法
    在学习操作系统的时候,我们会学到系统安全的章节,而在这一块会有关于加密解密算法的学习。一共有5种常见的加密解密算法:凯撒密码、字母倒排序、单表置换、维基利亚、转换加......
  • Python中的搜索算法。 #Python 系列 - 9
    Python中的搜索算法。#Python系列-9所以到目前为止,我们已经学习了python的基础知识。但是,我们从未见过这些基本原理的应用。在本文中,我们将看到两种处理在列表中搜索......
  • 使用 JavaScript Map Method 组合 mongo 查询的算法
    使用JavaScriptMapMethod组合mongo查询的算法假设您有大量数据,并且您想查找选定品牌的特定产品,例如尼卡化妆品和一个特定的类别,例如润唇膏从中。你的代码看起来......
  • 机器学习和 Python 中的决策树算法
    机器学习和Python中的决策树算法→决策树是一种树形算法,用于确定行动过程,树的每个分支代表一个可能的决策、发生或反应。让我们看一下术语:-熵——熵是数据集中“随......