什么是计算机算法?
要使计算机工作,您就必须编写计算机程序。要编写计算机程序,您就必须一步步地告诉计算机,您究竟想让它干什么。然后,计算机按照每个步骤来机械地“执行”程序,以实现最终目标。在您告诉计算机要做什么的时候,还必须选择要它怎样去做——这就是计算机算法的由来。算法是完成工作的基本技术。下面这个示例可以帮助我们理解算法的概念。
假设您的朋友到达了机场,现在需要从机场前往您的住所。以下是您可能向朋友提供的四种来您家的算法:
- 出租车算法:
- 前往出租车站。
- 进入出租车。
- 把我的地址给司机。
- 给我打电话算法:
- 飞机到达后,拨打我的移动电话。
- 和我在行李领取处外碰面。
- 租车算法:
- 乘坐班车前往汽车租赁行。
- 租一辆汽车。
- 按照路线到达我家。
- 公共汽车算法:
- 在行李领取处外,坐70路公共汽车。
- 在缅街站换乘14路公共汽车。
- 在榆树街站下车。
- 向北走两个街区就可以到我家。
所有这四种算法都能正确实现同一个目标,但每种算法都有截然不同的完成方式。此外,每种算法的成本和所用时间也不尽相同。例如,坐出租车也许是最快的方法,但也是最贵的。乘坐公共汽车绝对便宜,但也会慢很多。您可以根据实际情况来选择算法。
在计算机编程中,通常有多种不同的方法(算法),可以用来完成任何给定的任务。在不同的情况下,每种算法都有自己的优缺点。许多研究都是通过排序来完成的,因为计算机的大量时间都用在了列表排序上。以下是排序中使用的五种不同算法:
- 箱排序
- 归并排序
- 冒泡排序
- 希尔排序
- 快速排序
如果您有一百万个1到10之间的整数值需要排序,则应使用箱排序算法。如果您有一百万个书籍标题,那么快速排序可能是最佳算法。知道不同算法的优缺点后,您就可以为手上的任务挑选出最佳算法了。