基础知识 '算法在计算机中的作用' --《算法导论》笔记

        什么是算法?为什么要对算法进行研究?相对于计算机中使用的其它技术来说,算法的作用是什么?

 

        算法:简单来说,所谓算法(algorithm)就是定义良好的计算过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出。亦即,算法就是一系列的计算步骤,用来将输入数据转换成输出结构。

         我们还可以将算法看作是一种工具,用于解决一个具有良好规格说明的计算问题。有关该问题的表述可以用通用的语言,来规定所需的输入/输出关系。与之对应的算法则描述了一个特定的计算过程,用于实现这一输入/输出关系。

        在计算机科学中,排序是一种基本的操作(很多程序都将它用作一种中间步骤),因此,迄今为止,科研人员提出了多种非常好的排序算法。对于一向特定的应用来说,如何选择最佳的排序算法要考虑多方面的因素,其中最主要的是考虑待排序的数据项数、这些数据项已排好序的程度、对数据项取值的可能限制、打算采用的存储设备的类型(内存、磁盘、磁带)等。

        算法可以解决那些类型的问题?

        (略)。。。。。。

        数据结构

        数据结构是存储和组织数据的一种方式,以便于对数据进行访问和修改。没有哪一种数据结构可以适用于所有的用途和目的,因而,了解几种数据结构的长处和局限性是相当重要的。

        衡量算法效率的常用标准时速度,即一个算法得到最后结果所需要的时间,除此之外,算法的吞吐量也可作为效率的标准。

        是否拥有扎实的算法知识和技术基础,是区分真正熟练的程序员与新手的一项重要特征。利用当代计算技术,无需了解很多算法方面的东西,也可完成一些任务。但是,有了良好地算法基础和背景的话,可以做的事要多得多了。

        练习

        1、给出一个实际应用的例子,它在应用这一层次上要求有算法性的内容,讨论其中所涉及算法的功能。

        2、假设我们要比较在同一台计算机上插入排序和合并排序的实现。对于规模为n的输入,插入排序运行8*n*n步,而合并排序运行64*n*lgn步。当n取怎样的值时,插入排序的性能要优于合并排序?

        3、对于一个运行时间为100*n*n的算法,要使其在同一台机器上,比一个运行时间为2的n次方的算法运行得更快,n的最小取值是多少?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值