美文网首页
离散数学 第三章 算法

离散数学 第三章 算法

作者: 喜忧参半 | 来源:发表于2021-08-06 14:10 被阅读0次

算法就是按步就班的解决某个问题的方法。
要让计算机解决一个问题,这个问题的解决方法必须描述成一组精确步骤的序列。
algorithm一词源自公元9世纪的波斯数学家Al-Khowarizmi。

本章内容

  • 算法及符号表示法
  • 除数算法
  • 执行时间和空间的复杂度
  • 一些特殊算法的资源分析

3.1引言

算法一组有限的指令集合
确定性、准一性、有限性、输入输出通用性

算法设计

查找大于给定正整数的最小素数 给定n?最小素数p p>n

        static int
        NextPrime( int N )
        {
            int i;
 
            if( N % 2 == 0 )
                N++;
            for( ; ; N += 2 )
            {
                for( i = 3; i * i <= N; i += 2 )
                    if( N % i == 0 )
                        goto ContOuter;  /* Sorry about this! */
                return N;
              ContOuter: ;
            }
        }

习题:P125 1、4 、15

3.3 欧氏算法

求两个整数的最大公约数

Procedure gcd_recurs(a,b)
if a < b then
  swap(a,b)
if b=O then
  return(a)
return(gcd_recur (b,r))
End gcd_recurs

3.4递归算法

能够i调用自身的过程叫做递归过程
包含递归过程的算法叫做递归算法
分而治之(分治法)

Input: n,大于等于O的整数
ouput: n!
Procedure factorial(n)
if n=o then
  return(1)
return(n*factorial(n-1))
end

递归通过数学归纳法进行证明!

机器人一步能走1或2米,走n米一共有多少种走法?

procedure robot_walk(n)
if n=1 or n=2 then
return(n)
return(robot_walk(n-1)+
robot_walk(n-2))
end robot_walk

Fibonacci级数

1,2,3,5,8,13,…
f1=1,f2=2,fn=fn-1+fn-2 (n≥3)

习题:P136 7 、13

3.5 算法复杂度

时间开销,空间开销,算法分析,算法复杂度。(数据结构已讲)
例:
集合x包含n个元素,红/黑,问有多小个x的子集包含至少一个红色的元素?
时间开销

  • 最好情况下的时间
  • 最坏情况下的时间
  • 平均时间

定义:
f,g函数,定义域{1,2,...}
若存在C1对所有n满足:| f(n) |≤C1 l g(n) l
则称f(n)最大以g(n)为阶,f(n)=O(g(n))
若存在C2对所有n满足:| f(n) |≥ C2 l g(n) |
则称f(n)最小以g(n)为阶,f(n)= Ω(g(n))


lgn log2n

2n +3lgn <2n+3n=5n2n + 3lgn = O(n)
2n+ 3lgn > 2n2n+3lgn = 2(n)
2n+3lgn = O(n)
习题:P148 7,10,16

相关文章

  • 离散数学 第三章 算法

    算法就是按步就班的解决某个问题的方法。要让计算机解决一个问题,这个问题的解决方法必须描述成一组精确步骤的序列。al...

  • 操作系统、网络、算法数据结构、离散数学、数据库原理与实践

    操作系统、网络、算法数据结构、离散数学、数据库原理与实践

  • 最优树与哈夫曼编码

    大学的时候《离散数学》讲过哈夫曼算法,过了很多年后,只记得哈夫曼算法加压缩与解压上有很大优势,但不太记得哈夫曼算法...

  • 正月初五

    还有12天开学,我一定要学习完离散数学,概率论,c++,对算法有一个初步认知。 这里需要两天学完离散数学 三天半学...

  • 1.1 绪言

    离散数学形成能力评价(Rosen) 数学推理能力 组合分析能力 离散结构分析和应用能力 算法思维能力 应...

  • 离散数学基础

    离散数学中的二元关系 离散数学中的关系

  • 主要课程

    离散数学 大学物理 微积分C语言程序设计 数据结构 高级语言课程设计(java) 计算机组成原理 算法设计与分析 ...

  • 逻辑推理公式大全

    离散数学公式大全

  • 离散数学及应用——算法、整数、矩阵

    算法 算法是进行一项计算或解决一个问题的一组有限多条准确的指令。 搜索算法 线性搜索 二分搜索 排序 冒泡排序 冒...

  • 【离散数学】图论(一)图的基础知识

    正文之前 由于最近学习的 数据结构和算法 以及 离散数学 两门课都涉及到了 图 这个知识点,正好借此机会归纳一下我...

网友评论

      本文标题:离散数学 第三章 算法

      本文链接:https://www.haomeiwen.com/subject/feowvltx.html