第8章 算法和协议
算法(Algorithm),是程序的灵魂。著名计算机科学家、图灵奖获得者沃思曾提出过一个公式:数据结构+算法=程序。可见,算法在程序中占有非常重要的地位。在实际的开发工作中,不管是有意设计或是无意为之,我们几乎随时在和算法打交道。小到定义一个变量,大到编写一个函数,这些都是算法的实现过程。
在实际的软件开发项目中,经常要实现多个模块之间的通信,这就需要大家约定好相互之间的通信协议,各自按照协议来收发和解析消息。
本章对算法和协议进行详细的介绍。
8.1 算法及其应用
8.1.1 概述
什么是算法呢?先来看一看一些计算机书籍中的定义。
经典书籍《算法导论》(Cormen等著,机械工业出版社)中,作者认为算法是一系列的计算步骤,用来将输入数据转换成输出结果。
谭浩强老师的《C 程序设计》书中,算法被定义为是为解决一个问题而采取的方法和步骤。
《算法设计与分析—C++语言描述》(陈慧南编著,电子工业出版社)一书中,作者认为算法是求解一类问题的任意一种特殊方法,一个算法是对特定问题求解步骤的一种描述。
以上对算法的定义都是偏重理论,在实际的软件开发项目中,算法是用程序代码实现软件需求的方法,是软件开发工程师逻辑思维的体现。
8.1.2 图形化表示
为了形象化地表现算法,不同的学者设计出了不同的方法,这些方法包括:自然语言、流程