算法的计算复杂性

计算复杂度#

  计算复杂度由算法决定,一个数学问题通常可同时有多个解决算法,而计算复杂度可表述算法的复杂程度,在密码设计和密码分析中具有重要作用。计算复杂性理论不仅反映密码破译的固有困难性,评测密码算法对抗密码破译的实际能力,还能为不同密码算法实现难度的分析与比较提供了方法。

  算法复杂度一般由执行算法所需要的计算时间T(时间复杂度)和计算空间S(空间复杂度)来度量,它们通常可以表示成输入规模λ的函数。在分析算法的复杂度时,通常用O,O~,o,Θ四种方式表示它们之间的渐近程度。

  算法的复杂度通常指时间复杂度,通常分为以下 3类:多项式时间算法复杂度亚指数时间算法复杂度指数时间算法复杂度,三个算法时间复杂度是递增的。若存在常数a,n0,当a>n0时,满足,则称算法的时间复杂度为T(n)<af(λ)

多项式时间算法#

  假设λ是输入规模,k 为常数,如果执行此算法的时间复杂度为O(λk),则称该算法是一个多项式时间算法

计算复杂度理论中,多项式时间算法被认为是简单的算法。对于一个问题,如果存在多项式时间的解决算法,那么该问题不是一个计算困难问题。

指数时间算法#

  如果执行此算法的时间复杂度为O(tf(λ)),其中 t 为大于1的常数,此时,若 f(λ)是关于λ的一个多项式函数,则称该算法为指数时间算法。

若解决该问题的算法均是指数时间的算法,那么该问题是计算困难问题。

亚指数时间算法#

  若f(λ)是一个大于常数小于λ的线性多项式的函数,则称该算法为亚指数时间算法。

介于多项式时间算法和指数时间算法之间的是亚指数时间算法,本文所涉及到的近似最大公因子问题和错误学习问题,目前还不存在相应的亚指数时间算法用于求解上述两类问题。

可忽略函数#

可忽略函数是一个极小量,在计算复杂度理论和全同态加密的安全性定义中应用广泛。

 

作者:Hang Shao

出处:https://www.cnblogs.com/pam-sh/p/15243145.html

版权:本作品采用「知识共享」许可协议进行许可。

声明:欢迎交流! 原文链接 ,如有问题,可邮件(mir_soh@163.com)咨询.

posted @   PamShao  阅读(1638)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-09-08 网站远程附件存储到 OSS
2020-09-08 平滑升级mariadb
2020-09-08 在Apache服务器上安装SSL证书
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu