为什么要研究算法?
修竹
算法的优劣是程序质量的重要标志。当我们遇到难题时,总是要求计算机在较短时间内解决难题,这样我们就得深入研究算法,挑选出好的算法,以编出高效、实用的软件,使计算机更快、更出色地完成任务。
通俗地说,算法就是解决问题的具体办法。在《三国演义》中,周瑜与诸葛亮为了打破曹操强大的80万大军的进攻,先设法除去曹军中谙熟水战的水军将领蔡瑁、张允,于是就有了“群英会蒋干中计”;曹军中没有了真正懂得水战规律的将领,加上北方军人不适应舰船上生活,于是庞统的连环计获得成功;由于是隆冬季节在大江之上作战,所以就要有黄盖使苦肉计和草船借箭,然后,东吴水军才能在东南风起时火烧赤壁,取得破曹的决定性胜利。这也是周瑜、诸葛亮的破曹算法。以上环节中如果有一个环节失误,后果不堪设想。
在日常生活中,要解决一个问题,也总要先找出解决这个问题的步骤或办法。问题简单,解决问题的步骤就少些;问题复杂,解决问题的步骤就多。
许多著名的问题能得到解决,都是因为有人提出了巧妙的算法。举一个简单的例子:9枚外表相同的硬币中混进了一枚假币,知道它与真币重量不同,如果给你一架天平,至少需要称几次才能找到那枚假币?这个算法你可能很快就会设计出来。但如果999枚硬币中混进一枚假币,你又怎样用天平将它称出来呢?再举一个例子:有几个公路互通的城市,售货员从一个城市出发,要乘车走遍所有几个城市,最后回到出发点,该怎样找出售货员可以走的最短线路?用计算机与人下棋,如果是下五子棋,走棋的算法较简单,可能很多人都能设计出来,若是走围棋呢?恐怕就很难设计算法了!
在计算机领域,算法是指计算机用来解决某一问题的精确的方法。它是计算机程序的重要组成部分,算法的优劣是程序质量的重要标志。当我们遇到难题时,总是要求计算机在较短时间内解决难题,这样我们就得深入研究算法,挑选出好的算法,以编出高效、实用的软件,使计算机更快、更出色地完成任务。