• 算法基础知识(算法导论)


    1、定义

    算法就是一系列的计算步骤,用来将输入数据转换为输出结果。

    2、算法的共同特征

    1)有很多候选的解决方案,其中大部分不是我们所需要的。

    2)有着实际的应用。如最短路。

    3、章节框架

    1)伪代码描述  2)证明算法正确性(循环不变式)  3)时间效率分析

    3.1 循环不变式

    有三个性质:

    1)初始化:它在循环的第一轮迭代开始之前,应该是正确的。

    2)保持:如果在循环的某一次迭代开始之前它是正确的,那么,在下次迭代开始之前,它也应该保持正确。

    3)终止:当循环结束时,不变式给了我们一个有用的性质,它有助于表明算法是正确的。

    3.2 算法的时间分析

    1. 算法的运行时间:指在特定输入时,所执行的基本操作数(或步数)
    2. 一般我们考察算法的 最坏情况运行时间:
      • 一个算法的最坏情况运行时间是在任何输入下运行时间的一个上界。即能确保算法的运行时间不会比这一时间更长。我们不需要对运行时间做某种复杂的猜测,并期望它不会变得更坏了。
      • 对于某些算法来说,最坏情况出现得相当频繁。例如要找的信息不在数据库。
      • 大致上看来,平均情况与最坏情况一样差。例如插入排序的平均情况运行时间和最坏情况下的运行时间都是输入规模n的一个二次函数
    3. 各种渐进符号:
      • 渐进确界:Θ。Θ(g(n)) = {f(n): 存在正常数c1,c2,n0,使对所有的n≥n0,有0 ≤ c1g(n) ≤ f(n) ≤ c2g(n) }。即对任意一个函数,存在正常数c1,c2,当n充分大时,f(n)能被夹在c1g(n)和c2g(n)之间,则f(n)属于集合Θ(g(n)).
      • 渐进下界:Ω。Ω(g(n)) = {f(n): 存在正常数c和n0,使对所有的n≥n0,有0 ≤ cg(n) ≤ f(n) }
      • 渐进上界:O。O(g(n)) = {f(n): 存在正常数c和n0,使对所有的n≥n0,有0≤ f(n) ≤ cg(n) }
      • 非渐进紧确的上界:ο。o(g(n)) = {f(n): 对任意正常数c,存在正常数n0,使对所有的n≥n0,有0≤ f(n) ≤ cg(n) }
      • 非渐进紧确的下界:ω。ω(g(n)) = {f(n): 对任意正常数c,存在正常数n0,使对所有的n≥n0,有0 ≤ cg(n) ≤<f(n) }

      

  • 相关阅读:
    idea中maven报错:无效的目标发行版: 1.8
    IDEA将web项目打成war包
    Java 错误: 找不到或无法加载主类,问题集合
    阿里云centos7使用yum安装mysql的正确姿势
    一看你就懂,超详细java中的ClassLoader详解
    Linux下,用命令进行 日志分割、日志合并
    IDEA 类图功能使用方法
    通用base.css —— 《编写高质量代码 web前端开发修炼之道》
    easyui datagrid去掉全选按钮
    element+vue:el-table-column里面的内容只显示一行
  • 原文地址:https://www.cnblogs.com/hf-cherish/p/3476169.html
Copyright © 2020-2023  润新知