首页 > 其他分享 >递归和master公式

递归和master公式

时间:2023-12-14 09:23:24浏览次数:24  
标签:递归 公式 复杂度 master logN logba

递归的本质是系统帮我们进行了压栈,栈的名字叫做系统栈。但系统栈的空间十分有限,因此在工程上我们需要把递归改写成用内存中的栈来模拟系统压栈,以此来实现非递归。

master公式又叫主定理,是一种估算递归时间复杂度的公式。但有个前提条件:只有是子问题规模相同的递归才能使用。

T(N) = a * T(N / b)+ O(N ^ c), a 、b 、c都是常数。

a是调用的子问题的次数

b是问题被分为多少个子问题的个数

c是调用之外的时间复杂度

如果logba < c, 复杂度为: (N ^ c)。

如果logba > c, 复杂度为: (N ^ logba)。

如果logba == c, 复杂度为: (N ^ c * logN)。

补充:T(N) = a * T(N / b)+ O(N * logN),时间复杂度是O(N * (logN) ^ 2)。

标签:递归,公式,复杂度,master,logN,logba
From: https://www.cnblogs.com/lwj1239/p/17900415.html

相关文章

  • 【反转链表】while循环/递归
    leetcode206.反转链表题意:给定链表表头,反转链表,返回反转链表的表头【循环】题解:head维护原链表当前节点,nHead维护反转链表的头节点,nHead置于head前一位,依次后移,直至head到链表尾结束。双指针循环版本/***Definitionforsingly-linkedlist.*publicclassListNode......
  • Python:递归函数
    一、函数的递归什么是函数的递归:函数的递归就是函数的递归调用:是函数嵌套调用的一种形式。具体是指:在调用一个函数的过程中又直接或者间接的调用到本身。#1、直接调用本身(简单理解为死循环)deff1():print('直接调用本身实例:')f1()#调用f1()#由于没有......
  • 学C笔记归纳 第十三篇——函数3 递归(重点)
    1.什么叫递归?    递归是一种编程技巧,程序调用自身的编程技巧称为“递归”,应用广泛。2.描述递归    递归把一个大型复杂问题层层转化为一个与原问题相似的规模较小的问题来求解,    只需要少量的程序就可以描述出解题过程所需要的多次重复计算,大大减少......
  • 傅里叶级数公式及其收敛问题
    文章目录abstract傅里叶级数公式及其收敛问题介绍周期为的情形下,函数的傅里叶级数公式至于一般周期,可转化为周期进行讨论,并得出相应公式(另见它文)函数展开成傅里叶系数设是周期为的周期函数,且能展开为三角级数式(6),即=这就产生了一个重要问题,如何计算式(6)中的系数,或说确......
  • 递归算法
    递归算法是一种特殊的算法,它在一个问题中调用自身来求解。在递归中,一个函数会调用自身,通常是为了简化问题的规模,或者逐步逼近问题的答案。递归算法通常包括两个主要部分:基准情况(BaseCase):这是递归过程的终止条件。如果没有满足这个条件,递归将继续进行。递归情况(RecursiveCase):......
  • mysql递归查询
     MySQLwithRecursive的作用是基于一组初始数据,进行递归查询,返回符合条件的数据集。这种递归查询方式可以应用在很多场景下,比如对于树形结构、层级结构的数据处理,以及对数据进行分类汇总等。MySQLwithRecursive的使用限制?MySQLwithRecursive的使用限制主要在于查询语句的......
  • 递归函数复杂度分析
    在分析递归函数的时间复杂度时,我们需要考虑以下因素:每次递归调用的工作量。递归的深度(调用的次数)。每一层递归中的分支数。通常,我们使用递归树来分析递归算法的时间复杂度。具体的时间复杂度取决于递归算法的实现细节。我们来看一个简单的例子:计算斐波那契数列的递归实现。......
  • 递归思想
    递归思想递归的本质就是二字⇢套娃。什么被称之为是递归呢⇢在函数里面调用自身函数就被称之为是递归。套娃实际上就是在函数中再次调用同样的函数。以上便是递归的核心理念了,当你知道这个不知道这个核心理念有没有完整的刻在你的脑海当中去。在编程语言当中我们知道-一个函数是可以......
  • [持续更新][数据结构][算法]涵盖线性表、栈、链表、队列、图、动态规划、分治递归、回
    备考考点整理内部排序表格树的主要考点二叉树的常考紧紧抓住\(n_0=n_2+1\)\(n=n_0+n_1+n_2...n_m\)\(n=n_1+2*n_2+3*n_3...m*n_m\)+1哈夫曼树没有度为1的结点,也就是\(n_1=0\)完全二叉树常考总结最大岛屿问题(dfs模板)#include<iostream>#include<algorith......
  • 算法之快速排序5非递归实现
    一:概述绝大多数的递归逻辑都可以利用栈的方式去代替。代码中一层一层的方法调用,本身就是使用一个方法调用栈。每次进入一个新的方法,就相当于入栈。每次有方法返回就相当于出栈。所以,可以把原本的递归实现转换成一个栈的实现,在栈中存储每一次方法调用的参数。二:具体代码实现/*非......