探索算法
Ⅰ 推荐一些关于算法的书籍
1、数据结构与算法分析:C语言描述(适合入门)
这本书相对于算法导论要简单一些,更适合入门。算法导论其实有比较强的理论性,看起来比较吃力。
《数据结构与算法分析:C语言描述》内容简介:书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能、效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构的活跃领域进行了简要的概括。由于《数据结构与算法分析:C语言描述(原书第2版)》选材新颖,方法实用,题例丰富,取舍得当。《数据结构与算法分析:C语言描述》的目的是培养学生良好的程序设计技巧和熟练的算法分析能力,使得他们能够开发出高效率的程序。从服务于实践又锻炼学生实际能力出发,书中提供了大部算法的C程序和伪码例程。
2、算法设计与分析基础(适合入门)
作者基于丰富的教学经验,开发了一套对算法进行分类的新方法。这套方法站在通用问题求解策略的高度,能对现有的大多数算法都能进行准确分类,从而使本书的读者能够沿着一条清晰的、一致的、连贯的思路来探索算法设计与分析这一迷人领域。本书作为第2版,相对第1版增加了新的习题,还增加了“迭代改进”一章,使得原来的分类方法更加完善。
3.0、算法引论:一种创造性方法(适合入门)
和普通的算法书不同,这本书从创造性的角度出发——如果说算法导论讲的是有哪些算法,那么算法引论讲的就是如何创造算法。结合前面的算法设计与分析基础,这本书把能解决的算法问题数量扩大了一个数量级。
3.1 算法竞赛 | 信息学奥赛一本通(算竞入门)
AlphaWA同学推荐的入门书籍,网上没有PDF版本,自己去淘宝买喽。
3.2 算法竞赛 | 算法竞赛进阶指南(算竞进阶)
Ⅱ 如何理解算法多样化和算法优化之间的关系
1.算法多样化是“群体多样化”
算法多样化不是要求每个学生都想出或都掌握两种或多种算法。“一个学生也许只想到了一种算法,许多学生也许就有多种算法,实施算法多样法时,教师不必将每一种算法都挖掘出来,更不能凭教师自己的想象给学生列举出千奇百怪、不合逻辑的算法;教师不要生硬地套出学生的多种算法;也不要求学生都要掌握多种算法。”也就是说算法多样化是指“群体多样化”,而不是“个体多样化”。
2.算法多样化与算法优化
有教师认为算法优化就是跟着课本走,就是“算法唯一化”。我们说的算法优化有两条标准,一是尽可能地选择通法、通则,具有一般性,而不是适用于特殊数据的特殊算法。二是尽可能选择便于大多数同学接受、理解、掌握的算法。第二条标准再具体些,又可细化为两个方面:即算理上容易解释,容易理解;算法上简捷,容易操作,容易掌握。有必要指出,这里的“优化”,不同于数学上的“最优化”,它是相对而言的,但又难以或者说不必精确刻画的,其结果还常常不是唯一的。
算法的优化可以是算法多样化的一个后继步骤,算法只有在优化后多样化才有意义。新课标提倡算法的多样化,允许学生选择自己喜爱的算法,使得有些教师误在课堂教学时,片面追求形式各异的算法。虽说培养了学生的思维能力和创新精神,但明显地思维难度太大,导致当堂课的教学内容不能完成。并且一些思维能力欠缺的学生脑筋转不过来,直被说得云里雾里,教学效果不够理想。算法的多样化应是学生在探索算法的过程中自然形成的,而不是生硬地套出多种算法。在引导学生“群体算法多样化”后可以问一句:“你觉得哪种方法比较好?为什么?”这样,学生就在不知不觉中学会优化的方法了。