[空白音频] 嗨,你好。
下面我们一起来学习算法 算法呢就是计算机解决问题的办法,那么
这个算法呢它是指令的有限序列,也就是一系列的程序语句,程序的代码
那么计算机解决问题呢它跟我们其他学科呢是有所不同的 它具有这些特点。
第一个是有穷性,计算机的这个指令以及执行的 这个步骤呢一定是有穷的。
也就是说它不能是无穷的,所以这跟数学里呢是不一样的 那凡是无穷的呢,它一定要化成有穷的,才能解决。
第二个是 确定性,也就是说呢计算机用同样的数据、
同样的输入 那么得到的结果呢它是一样的。
这个包括我们的随机数 它一定呢也是确定的,所以表面上看是随机的
另外一个呢是可行性,那一个算法呢它一定是在可行的,就是能够真正地算出来
那包括呢我们能够化解成呢计算机它所有的指令 另外呢它在有限的时间内能够计算出来
如果我们一个算法它要算个上万年、 算个上亿年 理论上它算那么久,它是没有意义的。
所以这几个特点呢就是 算法呢最根本的特点。
另外呢,输入与输出也是它的特点 我们现在经常说呢就是要有计算思维,实际上呢就是
要把一个问题呢化成计算机可解决的这种问题 那这几个特点呢是我们需要知道的
算法有很多种,当然有一门学科呢专门研究数据结构与算法
那我们这门课程里头呢就介绍几种常用的算法 当然有一些算法呢已经封装到
API 里面了 我们可以呢来学习,当然我们也可以在日常编程里面呢 也可以不管它,直接用就行了。
而我们常用的那些算法恰恰是最简单、 最基本的 我们这里会介绍几种呢这样的算法
那这些算法呢在我的编程 任务当中呢,我觉得它要占上
90% 甚至更多的 这个情况,所以呢了解这些常用算法呢是很有必要的
我记得有一次在我的班上呢 出过这样一道考题,就是说请指出常用的算法
有的同学呢回答是这样的 他说,老师,没有常用的算法,因为每一个任务呢都有常用的算法
这里呢很显然他是一种狡辩,他把事物的
普遍性与特殊性对立起来了,那我看到这个答案呢,我第一次给他分了
以后呢我就聪明了,我在上课的时候我就说 以后你再这么回答,我就不给你分了