zoukankan      html  css  js  c++  java
  • 算法和数据结构复习(一)引论和基础

    常用的有这两种数归,其他的数学归纳法暂不涉及,有兴趣可以拓展学习。还有一些反证法。在进行编程的时候,如果有可能存在未知的情况,可以用归纳法推演一下,尽量避免使用递归。如果你写过的代码并不多,递归带来的性能提升远不及造成的麻烦。甚至递归本身就很糟糕。

    ①第一数学归纳法:
    一般地,证明一个与自然数n有关的命题P(n),有如下步骤:
    (1)证明当n取第一个值n0时命题成立。n0对于一般数列取值为0或1,但也有特殊情况;
    (2)假设当n=k(k≥n0,k为自然数)时命题成立,证明当n=k+1时命题也成立。
    综合(1)(2),对一切自然数n(≥n0),命题P(n)都成立。
    ②第二数学归纳法:(完整归纳法)
    另一个一般化的方法叫完整归纳法(也称第二数学归纳法),在第二步中我们假定式子不仅当n=m时成立,当n小于或等于m时也成立.这样可以设计出这样两步:
    (1)证明当n= 0时式子成立.
    (2)假设当nm时成立,证明当n=m+ 1时式子也成立.
    则命题成立。
    ②反证法
    (1)找到一个反例。
    (2)通过定理如果成立,导致一个已知的性质不成立。通过假设定理如果不成立,导致已知的一个性质不成立。
     
    还有一个些需要注意的地方,两层for循环其实已经很糟糕了,如果你写了三层的循环,请立即删掉重写。写完代码时,建议留意一下时间复杂度,如果是要考虑空间复杂度,请在代码构思之前就得想好。不过现在的程序员往往更注重时间低,而不是占用资源低。
     
     
  • 相关阅读:
    VMware 虚拟机下载与安装
    技术点
    使用 localstorage 写入浏览器并获取
    Vue 生命周期
    Java程序中使用 Jsoup 爬虫( 简单示例 )
    Java程序中实现 MySQL数据库的备份与还原
    微信小程序快捷键(Mac和windows)
    SEO需要掌握的基础知识
    好用的图片压缩在线网站(几乎不损伤图片质量)
    CSS3新增伪类--好用的:target
  • 原文地址:https://www.cnblogs.com/still-smile/p/13906797.html
Copyright © 2011-2022 走看看