文章目录

  • 一、时间复杂度时间单位
  • 二、算法分析
  • 三、算法复杂性分析

一、时间复杂度时间单位


图灵机计算时间 是根据 步数 进行定义的 , 图灵机走 111 步 , 时间加一 ,

每一步的时间可能不一致 , 有些步需要花费少量时间 , 有些步需要花费大量时间 ,

在计算理论中 , 只讨论步数 , 不讨论具体精确的时间 ;

f(n)\rm f(n)f(n) 是长度为 n\rm nn 的字符串 , 输入到图灵机中进行计算时 , 所需要的 步数的最大值 ;

步数的最大值就是最坏情况下走的最多的步数 ;

二、算法分析


给定语言 : A={0k1k:k≥0}\rm A = \{ 0^k1^k : k \geq 0 \}A={0k1k:k≥0}

构造图灵机 M1\rm M_1M1​ 认识上述语言 : 设计过程如下 :

在图灵机带子上放入 0k1k0^k1^k0k1k 字符 , 如 000111000111000111 , 如何识别该字符串 , 一定在 A\rm AA 语言中 ,

首先检查 010101 的相对顺序 , 000 一定要出现在 111 的前面 , 如果顺序紊乱就进入拒绝状态 , 如果顺序正确 , 继续向下执行 ;

每遇到一个 000 就划掉一个 111 , 如果最后发现都没有剩余 , 那么该图灵机进入接受状态 , 否则进入拒绝状态 ;

M1\rm M_1M1​ 图灵机算法设计如下 : 算法的描述是双引号 “” 中的内容 , 这是操作意义上的图灵机 , 只描述图灵机读头操作 , 没有必要将图灵机指令整体设计出来 ;

M1=\rm M_1 =M1​= "在长度为 n\rm nn 的字符串 w\rm ww 上进行如下计算 :

① 扫描整个带子上的字符串 , 查看 000 和 111 的顺序 , 所有的 000 必须在所有的 111 前面 ; 如果顺序错误 , 进入拒绝状态 ;

② 扫描整个带子 , 遇到一个 000 , 就划掉一个 111 ; 如果带子上存在 000 和 111 , 该操作重复进行 ;

③ 如果最后只剩下 000 或只剩下 111 , 说明 两个数字的个数不等 , 进入拒绝状态 ; 如果最后带子上只剩下空白字符 , 说明两个数字个数相等 , 进入接受状态 ; "

三、算法复杂性分析


现在讨论上述算法的复杂性 , 假设给定字符串长度为 n\rm nn , 那么讨论在最坏的情况下 , 所花费的时间最大值 ;

最坏的情况就是在每个步骤中 , 都达到计算的最大值 , 最坏的情况就是 000 的个数与 111 的个数一样多 , 都是 n2\rm \cfrac{n}{2}2n​ 个 , 并且 000 在前面 , 111 在后面 , 这是计算步数最多的情况 ;

如 : 第一步如果 111 就出现在第一个 , 执行 111 步就进入了拒绝状态 , 此时肯定是最少的执行步数 ;

【计算理论】计算复杂性 ( 时间复杂度时间单位 : 步数 | 算法分析 | 算法复杂性分析 )相关推荐

  1. 【计算理论】计算复杂性 ( 多项式时间规约 | NP 完全 ★ | 布尔可满足性问题 ) ★

    文章目录 一.多项式时间规约 分析 二.NP 完全 ★ ( 计算理论最重要的概念 ) 一.多项式时间规约 分析 多项式时间规约概念 : [计算理论]计算复杂性 ( 多项式等价引入 | 多项式时间规约 ...

  2. 【计算理论】可判定性 ( 丘奇-图灵论题 | 可判定性引入 | 图灵机语言 | 图灵机结果 | 判定机 | 部分函数与全部函数 | 可判定性定义 )

    文章目录 一.丘奇-图灵论题 二.可判定性引入 三.图灵机语言 四.图灵机结果 五.判定机 五.部分函数与全部函数 六.可判定性定义 一.丘奇-图灵论题 为算法提供严格的数学模型 , 除了图灵机之外 ...

  3. 【计算理论】计算复杂性 ( 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 )

    文章目录 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 在上一篇博客 [计算理论]计算复杂性 ( 非确定性 ...

  4. 【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 | 证明多个带子图灵机时间复杂度 )

    文章目录 一.确定性模型的计算复杂性关系 二.证明 "多个带子图灵机时间复杂度是 O(n2)\rm O(n^2)O(n2)" 一.确定性模型的计算复杂性关系 计算的 复杂性 取决于 ...

  5. 【计算理论】计算复杂性 ( 计算理论内容概览 | 计算问题的有效性 | 时间复杂性度量 | 输入表示 | 时间复杂度 )

    文章目录 一.计算理论内容概览 二.计算问题的判定性 三.计算问题的 有效性 四.时间复杂性度量 五.算法有效性 数学定义需求 六.输入表示 七.时间复杂度 一.计算理论内容概览 计算理论分为 形式语 ...

  6. 【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 )

    文章目录 一.两个带子的图灵机的时间复杂度 一.两个带子的图灵机的时间复杂度 讨论两个带子的图灵机的时间复杂度 ; 计算问题如下 : 给定语言 : A={0k1k:k≥0}\rm A = \{ 0^k ...

  7. 分治法的计算时间、时间复杂度推导以及经典算法分析

    分治是一种解决复杂问题的思想,它可以将一个问题划分成多个小的问题,通过合并这些问题求得原问题的解.本文对分治法进行复杂性分析,并通过这种方法分析几个具体算法的时间复杂度. 文章目录 1 分治法的复杂性 ...

  8. 【计算理论】计算复杂性 ( 非确定性图灵机的时间复杂度 | 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的关系 )

    文章目录 一.非确定性图灵机的时间复杂度 二.非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 一.非确定性图灵机的时间复杂度 给定一个非确定性图灵机 , 该图灵机是 判定机 , 在所有 ...

  9. 【计算理论】计算复杂性 ( NP 类不同表述 | 团问题 | P 对 NP 问题 )

    文章目录 一.NP 类不同表述 二.团问题 三.P 对 NP 问题 ( P vs NP ) 一.NP 类不同表述 NP\rm NPNP 对应的 确定性图灵机 表述 : NP\rm NPNP 类就是有 ...

最新文章

  1. JSON.parse()和SON.stringify()
  2. 一键还原奥运版_福田奥铃CTS超越版和江淮全能卡车,哪款实力更强?
  3. 六十七、SpringBoot嵌入式的Servlet容器和创建war项目
  4. JVM--字节码执行引擎
  5. HashMap和ArrayList初始大小和扩容后的大小
  6. 【安卓开发 】Android初级开发(零)各种布局
  7. mac svn工具_程序员或产品经理,这些Mac的效率工具一定不要错过
  8. python读取视频流做人脸识别_基于 Python + OpenCV 进行人脸识别,视频追踪代码全注释...
  9. 谢谢你,阅读了这篇文章
  10. 【环境配置】Collecting package metadata (current_repodata.json): failed的问题解决
  11. 服务器iis的作用,Web 服务器 (IIS) 概述
  12. Photoshop CS5软件安装教程
  13. phpst安装memcache扩展_超简单的wordpress网站安装教程(基于phpstudy PHP环境)
  14. x86服务器是32位系统嘛,x86是什么意思?x86是32位还是64位?
  15. 关于产品的一些思考——豌豆荚之应用下载
  16. 计算机毕业论文致谢,精选毕业论文致谢语6篇
  17. AutoDesk CAD激活后闪退解决方法
  18. HDU 1814 Peaceful Commission(2-SAT)
  19. 团体程序设计天梯赛-练习集 L1
  20. 反常积分(广义积分)存在判别法

热门文章

  1. JavaEE高级-MyBatis学习笔记
  2. ubuntu 18.04 配置notebook远程连接的坑
  3. MySQL—异常处理
  4. python-logging用法
  5. 设计模式:迭代器模式
  6. Nginx的配置文件nginx.conf详解
  7. Python学习(四)数据结构 —— set frozenset
  8. css阻止input select默认事件
  9. Python-IDLE实现清屏
  10. 洛谷P2312解方程