Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

算法

算法就是定义良好的计算过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出;简单来讲,算法就是一系列步骤,用来将输入数据转换成输出的结果

算法是求解某个问题的长度有限的指令序列,每条指令都是确定的、简单的、机械的、可执行的

算法的实际应用

  • 计算机系统的结构
  • 内存访问
  • 读写操作

具体问题求解时可以使用迭代算法或收敛算法

算法评价指标

  • 时间复杂度
  • 空间复杂度
  • 正确性
  • 可读性
  • 健壮性

时间复杂性

时间复杂性将归结为某些基本操作的次数问题,基本操作的次数与问题的规模有关

计算模型

  • 哥德尔(Godel)的递归函数
  • 丘齐(Church)的伽马演算
  • 波斯特(Post)的波斯特机
  • 图灵(Turing)的图灵机
  • RAM模型

一般采用单处理器、随机存取RAM计算模型

算法的正确性分析

  • 循环不变式:初始化、保持、终止
  • 增量法:如果A[0..i-1]已经完成,如何扩展到A[0..i],最终扩展到A[1..n]

算法时间复杂度分析

一个算法的最坏情况运行时间是在任何输入下运行时间的一个上界

  • 最坏情况和平均情况
  • 多层for循环每一层时间相乘即可
  • 当输入规模足够大时,算法增长量级,忽略常系数和低阶项
  • 在输入规模较小时,由于常数项和低次项的影响,不可忽略