分享

一分钟算法——什么是算法?

 海纳川369 2016-04-04

什么是算法?



我曾经出过几道编程的挑战题,对于没有接触过编程的同学来说,这些题还真有点难度。编程是用来解决一些日常生活中依靠人脑不能轻易解决的问题,例如:九宫格、24点等等。如果你学习编程比较深入了,那就要用到算法了。在写程序之前,我们需要构思一个合适的算法来解题,一个好的算法是很重要的。


现在给你10名学生的某次考试成绩,要求你按照成绩从大到小给这些学生排序。当然,你可以一个一个地比较着排序,但是万一有1000名学生甚至更多呢?(或是一千万个呢?那会不会很繁琐?)解决此类排序问题一定有很多的算法(至少有很多人研究),在此说一个简单的。我们先从这10名学生中挑选一名成绩最高的,记录下他是第一名;再从剩下这9名学生中挑选一名成绩最高的,记录下他是第二名……以此类推,直到最后只剩下1名学生,直接记录下他是第十名。事实上,在这个朴素的算法当中,还有很多需要我们去考虑的,例如:如何存放(记录)10名学生以及他们的名次?如何表示出做完后的结果?这样做会不会很费时(比较次数过多?循环次数过多?)……当我们确定这个算法可行以及是目前认为最优的时,才能够利用这个算法编程。


手机、电脑上的输入法一定会用到算法,譬如你经常输入的词语会不会在你又一次输入的时候提前跳出,以加快你的打字速度。还有我们经常要用到的导航软件,说简单就是找最短路径,说难一点就涉及到图论中的好几个不同的算法。

 

    

算法在我们身边无处不在,在接下来的几期一分钟算法中,我会给大家介绍几个比较容易理解的算法,最经典的就是之前讲到的排序啦。




如果大家觉得我对算法的介绍还有些不足或有些意见的,可以在文章底部右下角的“写留言”当中评论。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多