【liuyubobobo-算法与数据结构】第一章 课程概述


持续学习&持续更新中…

守破离


  • 任何时候学习算法都不晚,而且越早越好,这么多年,你听说过技术过时,什么时候听说过算法过时,不仅没有过时,因为机器学习、大数据的要求,算法变得越来越重要了。
  • 对算法的学习,会逐渐培养你理清逻辑的习惯,对每一个变量作用的深刻理解,也能让你写出越来越优雅的代码

什么是算法

一系列解决问题的,清晰,可执行的计算机指令。

算法的5大特性

有限性
  • 一个算法不应该是无限循环的,应该在有限的时间里可以执行完。
  • 所谓的有限的时间,不代表这个时间一定会非常短。
  • 比如我设计了一个算法,这个算法需要一万年、一亿年才能执行完,从原则上讲,它也是一个算法。只不过它消耗的时间太长,并不实用而已。
  • 这样一个不实用的算法并非完全没有意义!
  • 可以想象一下,有可能在现在我们需要一万年的时间才能执行完的算法,随着技术的发展(硬件技术、并行计算、量子计算…),使得在以后,同样的算法可能只需要一秒钟就可以执行完毕。这个算法此时就有意义了。
  • 另外一点,很多时候我们研究算法,恰恰是从这样的一个看似不可行的算法出发,一步一步的优化它,最终得到一个可行得算法。
  • 所以,对于一个看起来不可行的算法,它可能是有研究意义的。
确定性
  • 每一个指令本身应该是含义唯一的,不能产生二义性。
可行性
  • 算法中的每一步都应该是可行的。
输入
输出
  • 并不像函数的输入输出那样,算法的输入输出是宏观的、抽象上的输入和输出。

    1. 对于一个算法来说,它肯定是有它操作的对象的。它所操作的这些对象就是这个算法的输入。
    2. 算法执行产生的效果、结果就是该算法的输出,是宏观抽象的输出。

为什么要学习算法

  • 为了IT企业面试(无可厚非、但不仅仅、绝不止步于此)

在这里插入图片描述

  • 算法在计算机行业中是至关重要的。可以说,在计算机中,算法无处不在

算法无处不在

  • 编程语言的编译器(编译器如何理解程序?如何智能报告编译错误、逻辑错误?如何优化代码?…?)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值