基础编程模型(译自 Algorithms Fourth Edition)

这本书的目的是学习很多重要且有用的算法,算法就是解决很多问题的方法,它们适合被计算机执行。

算法与数据结构关系紧密,数据结构就是组织数据的模式,这使数据能够用一种算法来高效处理。本章介绍我们学习算法和数据结构需要的基本工具。

 

首先,我们介绍我们的基础编程模型。我们所有的程序实现使用了java编程语言的一小部分,加上一些我们自己的用于输入/输出和统计分析的lib库。1.1节是本书中用到的语言结构,功能和lib库的概述。

 

接下来,我们重点讲抽象数据,这里我们定义抽象数据类型ADTs在模块化编程的服务中。1.2节我们介绍在java中实现抽象数据类型ADT的过程,通过定义一个应用程序接口API,然后使用java类机制来开发一个用于客户端代码的实现。

 

作为重要且有用的例子,我们接下来考虑三种基础抽象数据类型ADTs:包bag,队列queue,栈stack。1.3节描述应用程序接口APIs和包,队列,栈通过arrays,可变大小的arrays,和linkedlists的实现,他们充当模型和本书所有算法实现的起点。

(参考:背包、栈和队列,集合类数据类型的实现)

 

性能是一个算法学习中关注的核心。1.4节描述我们分析算法性能的途径。基础的分析途径是科学方法:我们形成有关性能的假定,创造数学模型,并运行试验来测试他们,如有必要重复这个过程。

 

我们以一个案例学习来总结,这个案例出现在我们考虑一个连接问题的解决办法时,使用的算法和数据结构是经典的union-find ADT的实现。

 

算法

当我们写一个计算机程序,我们经常实现一个方法,这个方法预先设计来解决某些问题。这个方法经常是独立于所使用的特定编程语言,它可能对于所有的计算机和很多编程语言同样适用。它是一种方法,而不只是计算机程序本身,它定义了我们能解决这个问题的步骤。算法这个术语用于计算机科学中描述一个无限的,确定的,并且高效的问题解决方法,适合作为一个计算机程序来实现。算法是计算机科学的材料,他们是这个领域学习的核心内容。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值