首页 > 编程语言 >算法复习

算法复习

时间:2023-12-31 17:13:01浏览次数:29  
标签:渐近 复习 递归 分治 算法 n0 运行 记号

目录

渐近记号

O记号

渐近上界记号O (大O)
渐近地给出了一个函数在常量因子内的上界:
O(g(n)) = { f(n) : 存在正常量c和n0,使得对所有n ≥ n0,有0 ≤ f(n) ≤ cg(n)}
f(n) = Θ(g(n))蕴含着f(n) = O (g(n))
O可用于标识最坏情况运行时间
image

Ω记号

渐近下界记号Ω (大Ω)
渐近地给出了一个函数在常量因子内的下界:
Ω(g(n)) = { f(n) :存在正常量 c 和 n0,使得对所有 n>= n0,有 0 ≤ cg(n) ≤ f(n) for all n ≥ n0 }
f(n) = Ω(g(n))蕴含着f(n) = Ω(g(n))
Ω可用于标识最佳情况运行时间
image

Θ记号

渐近紧确界记号Θ
渐近地给出了一个函数的上界和下界:
Θ(g(n)) = { f(n) : 存在正常量c1, c2和n0,使得对所有n ≥ n0,有0 ≤ c1 g(n) ≤ f(n) ≤ c2 g(n)}
image

分治策略

三个步骤:

  1. 分解
    将问题划分为若干个子问题
  2. 求解
    递归地解这些子问题;若子问题Size足够小,则直接解决之
  3. 组合
    将子问题的解结合成原问题的解

分治算法的效率分析

一个递归式是一个函数,它由一个或多个基本情况(base case),它自身,以及小参数组成。
递归式的解可以用来近似算法的运行时间。

迭代法求运行时间

image

递归树法求运行时间

image
image

主定理法求运行时间

该方法可解如下形式的递归式
T(n) = aT(n/b) + f(n)
其中 a >=1 和 b >1 是两个常数, f(n) 是一个渐进非负函数(当n趋于无穷时, f(n) 是非负的. 如果 n/b 不是整数, 取整 n/b
主方法可解包含三种类型 f(n) 的递归式 T(n)
image
关键是看 f(n) 和 nlogba 谁比较大。
image
image
image
image

标签:渐近,复习,递归,分治,算法,n0,运行,记号
From: https://www.cnblogs.com/FrostyForest/p/17937736

相关文章

  • 代码随想录算法训练营第12天 | 树的遍历
    (本合集全部为Go语言实现)相关文章链接:递归遍历迭代遍历统一迭代法相关视频链接:Leetcode94状态:实现过程中的难点:迭代法的模拟过程比较难想个人写法递归方式funcinorderTraversal(root*TreeNode)[]int{varres[]intinorderTraversal0(root,&res)return......
  • 生物统计复习
    1.绪论1.1统计学研究数据的收集、整理、分析和解释的科学,是处理数据中变异性的科学和艺术。统计分析可分为统计描述和统计推断两部分统计描述:用统计图表、统计指标或几个特征数描述资料的数据特征和分布规律统计推断:用样本信息来推断总体特征目的:求得可靠的结......
  • 利用强化学习算法解释人类脑对高维状态的抽象表示:how humans can map high-dimensiona
    论文:《Usingdeepreinforcementlearningtorevealhowthebrainencodesabstractstate-spacerepresentationsinhigh-dimensionalenvironments》地址:https://www.cell.com/neuron/fulltext/S0896-6273(20)30899-0正文:https://www.cell.com/neuron/pdf/S0896-6273(20......
  • day03 代码随想录算法训练营 203. 移除链表元素
    题目:203.移除链表元素我的感悟:题目里的节点是已经给好的,创建虚拟节点,是为了方便处理头节点。加油,我可以的!!!!!理解难点:节点已经给好的创建虚拟节点代码难点:p是临时变量,类似于foriinrange(10)这里的i,本身是用完就扔的。返回值为什么不能是p.next?因为p是一个指针,......
  • 垃圾回收原理和算法
    垃圾回收原理和算法内存管理Java的内存管理很大程度就是:堆中对象的管理,其中包括对象空间的分配和释放对象空间的分配:使用new关键字创建对象即可对象空间的释放:将对象赋值null即可垃圾回收过程:任何一种垃圾回收算法一般要做两件基本事情:1.发现无用的对象2.回收无用对象占用的内......
  • 手写topN算法-c语言
    #include<stdio.h>#include<malloc.h>structTreeHeap{intv;};typedefstructTreeHeapTreeHeap;staticvoidprint_bp(intbp[],intlen);voidcreate_treeheap(TreeHeap*treeheap,intdata[10],intbp[11]){treeheap->v=1;......
  • 算法学习Day18左下角的值,路径总和,构建二叉树
    #Day18左下角的值,路径总和,构建二叉树`ByHQWQF2023/12/30`##笔记***##513.找树左下角的值给定一个二叉树的**根节点**`root`,请找出该二叉树的 **最底层 最左边**节点的值。假设二叉树中至少有一个节点。**示例2:****输入:**\[1,2,3,4,null,5,6,null,null,7]**......
  • 【图论】最大势算法
    模板题FishingNet给定一个无向图,判断是否是弦图。\(1\leqn\leq1000\)。算法概述最大势算法(MCS),是一个用于求出无向图完美消除序列的算法。算法流程为:钦定一个集合\(S\)。每次找到任意一个与\(S\)中的点连边最多的点,加入\(S\),放在消除序列末尾。这样就可以......
  • 限流算法
    计数器在固定时间间隔内,处理请求有上限,请求超出部分丢弃。packagemainimport( "sync" "time" klog"k8s.io/klog/v2")typecounterRateLimiterstruct{ msync.Mutex startPartTimeint64 endPartTimeint64 maxCountint currCou......
  • DES加密算法优缺点大揭秘:为何它逐渐被取代?
    一、引言DES(DataEncryptionStandard)加密算法作为一种历史悠久的对称加密算法,自1972年由美国国家标准局(NBS)发布以来,广泛应用于各种数据安全场景。本文将从算法原理、优缺点及替代方案等方面,对DES加密算法进行全面解析。DES加密解密|一个覆盖广泛主题工具的高效在线平台(......