程序语言的奥妙:算法解读 ——读书笔记

算法(Algorithm) 是利用计算机解决问题的处理步骤。

 

算法是古老的智慧。如《孙子兵法》,是打胜仗的算法。

 

算法是古老智慧的结晶,是程序的范本。

学习算法才能编写出高质量的程序。

 

懂得了算法,游戏水平会更高。

比如下棋,如果懂得棋谱,就不需要每次考虑“寻找最好的一步棋”,按照棋谱

就可以走出最好的几步棋。棋谱是先人们智慧的结果,因此掌握多种棋谱的人更

容易在对弈中获得胜利。

 

算法的学习类似学习游戏攻略。

算法是编写好程序的“棋谱”。

 

算法必须满足“有效性”和“终止性”。

  • 算法,必须要为给定的任务给出正确的结果,这就是算法的有效性。
  • 算法,最终必须要确保停止。

断点是表示算法“有效性”的方法之一。

 

算法的种类:

1、技术计算

欧几里德相除法 (最大公约数)

高斯消元法 (联立方程组)

梯形法 (定积分)

迪杰斯特拉法 (最短路径)

埃拉托色尼筛法 (素数)

2、排序

将一行数据从小到大(升序),或从大到小(降序)排序的算法

简单选择法

简单交换法 (冒泡排序)

简单插入法

希尔排序

归并排序

快速排序

3、查找

从大量数据中定位目标数据的算法。

线性查找 (linear search)

二分查找 (binary search)

4、字符串模式匹配

从给定的字符串中寻找指定字符串位置(子字符串)的算法

简单字符串匹配

KMP法

BM法

算法的基础——结构化程序设计的思想

1、顺序结构

2、选择结构

3、循环结构

算法由上述三种结构的组合来进行的。

 

 

posted @ 2014-06-22 02:25  活力小子  阅读(614)  评论(0编辑  收藏  举报