算法解决问题的步骤 http://www.czhztjz.com/ http://www.czhlife.com
01 算法概念的理解
算法可以很复杂也可以很简单
百度百科上对算法的定义:
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
为什么算法是解题方案的准确、完整的描述,而且还要清晰的指令呢?因为绝大多数算法最终需要转换成计算机程序给计算机执行的,而计算机是比较死板的。更直白地讲,算法呢大多数时候是充当了人和计算机之间的一种“翻译”的角色。
那么我们用什么方法或者是工具来准确、完整、清晰的描述解题方案呢?也就是说,我们用什么方法来描述算法呢?
给人看的算法呢,经常采用三种方式来描述它:
1、自然语言。所谓自然语言就是人类的语言,我们人类语言最大的特点就是不严谨,同样一句话不同的语境、不同的人可能会有不同的理解,这和算法的定义是背道而驰的。所以又有了下面两种算法描述方法。
2、流程图,N-S图。又称程序框图,用一组统一规定的标准符号描述程序运行具体步骤的图形表示。这是一种非常好的算法描述方法,一图胜千言。我们做02典型算法的例子里会介绍。
3、伪代码。一种非正式的,类似于英语结构的,用于描述模块结构图的语言
流程图的符号描述
一段求三个数中最大数的伪代码
02 一个典型算法的例子
其实我们碰到的很多问题,在不同的时间、不同的地点可能已经有另外的一些人碰到过很多很多次了。所以呢,就有很多很经典的算法,我们如果认真的研究一下这些算法,你会觉得比打游戏打怪升级还更有意思。比如下面这张图里几种常见的排序算法,所谓排序算法就是给计算机一组杂乱无章的数,让它帮我们从小到大或者从大到小排列起来。
排序算法最常见的应用就是,期末考试的时候我们老师把每个同学的成绩都输入给计算机,计算机能帮我们把这些成绩排个序。想象一下,如果是全国统考的高考,全国那么多考生的成绩排序,如果是人工排的话那得多大的工作量?光中午管盒饭也不老少啊! |