算法和大学生竞赛论文.doc

算法和大学生竞赛论文.doc

ID:52423475

大小:65.50 KB

页数:7页

时间:2020-03-27

算法和大学生竞赛论文.doc_第1页
算法和大学生竞赛论文.doc_第2页
算法和大学生竞赛论文.doc_第3页
算法和大学生竞赛论文.doc_第4页
算法和大学生竞赛论文.doc_第5页
资源描述:

《算法和大学生竞赛论文.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、算法与大学生竞赛姓名:XXX年级:2015级专业:软件工程班级:一班学号:算法与大学生竞赛多数老师在计算机语言课的教学中,过分注重对语法问题的讲解,而对算法的重要性体会不深,在平时教学中也没有时刻地把握这一点。算法是计算机不可忽缺的一部分,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机算法和理论更重要

2、,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。那什么是算法呢?算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率來完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计

3、好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。一个算法应该具有以下五个重要的特征:1、有穷性:一个算法必须保证执行有限步之后结束;2、确切性:算法的每一步骤必须有确切的定义;3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;5、可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的

4、算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法。算法可以宏泛的分为三类:有限的,确定性算法这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。有限的,非确定算法这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。无限的算法是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定的定义终止条件。计算机科学

5、家尼克劳斯-沃思曾著过一本著名的书《数据结构十算法二程序》,可见算法在计算机科学界与计算机应用界的地位。就拿软件工程来说:算法是程序的灵魂当程序设计人员对问题的描述清楚后,要想利用计算机来解决问题吋,就得编写程序,但如果直接开始写程序可能有些复杂,所以,一般都是先由算法着手,在配合适当的数据结构,就能容易地写出程序。著名瑞士计算机科学家N.Wirth教授提出过一个公式:程序二数据结构+算法就是说,一个程序应包括以下两个方面的内容:(1)对数据的描述,是指在程序中要指定数据的类型和数据的组织形式,即数据的结构。(2)对操作的描述

6、,即操作步骤,也就是算法。数据是操作的对象,算法是对数据进行加工的步骤,作为程序设计人员必须认真考虑设计数据结构和操作步骤(即算法)。实际上,一个程序除了以上两个基本耍素之外,还应当采用结构化程序设计方法进行程序设计,并采用某一种计算机语言表示。因此又可以这样表示上述公式:程序二算法+数据结构+程序设计方法+语言工具和环境这就是说,以上四个方面是一个程序设计人员所应当具备的知识。在设计一个程序时要结合运用这些方面的知识。在这四个方面中,算法是灵魂、是解决“做什么”和“怎用做”的问题的。算法是程序朴素的基础,学好它有有助于理解各

7、种上层抽象。在没有充分学习和理解数据结构与算法的基础上去学习面向对象、设计模式,是无法真正体会这些上层抽象的真正意义的,最终可能会导致学之泛泛,用之泛泛。在工作中,见识了太多开口设计模式,闭口面向对象的人,在某个具体的问题上,问他为什么要用面向对象,为什么要用这样的设计模式,得到的回答相当空泛,有时候甚至是为了对象而对象,为了设计而设计。这样的人,做岀来的设计,往往过度设计,似是而非,导致做岀来的东西混乱不堪。遇到的真正设计高手,还没有一个是对数据结构与算法是不精通的。让他讲为什么这样设计,为什么这样架构,他往往能深入浅出,将

8、面向对象的思想、设计模式的考虑,与基础的数据结构和对应的算法结合起来,贴合问题的实际情况,给出良好的结论。有人可能会抬杠:照你这么说,是基础就要学,那是不是还要把CPU的物理原理学透了才能写程序?我的回答:你说的还真对,一个对CPU的运行原理不清楚的人,是不可能真正理解现在流

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。