“玩”算法三点:
1,对遇到的特殊问题要能够自己设计出算法实现
2,对于原理公开的知名算法,要能将算法原理翻译成具体的算法代码
3,对已有具体实现的算法,要能够设计出合适的数学模型,将算法应用到世纪问题中
(需熟练掌握各种常用的基础算法外,还要了解算法设计的常用思想和模式,并要掌握将题目转换成数据模式,进一步用数据结构实现数据模型的一般方法。)
数据模型
数据模型定义:在计算机程序中可以直接使用的,用编程语言直接描述的数学模型,可以将数据模型简单理解为与数学模型相一致的数据结构定义,是数学模型的一种表达形式。
算法 = 数据模型 + 算法逻辑主体 +输入输出
输入就是把自然语言描述的问题转化成计算机能存储或处理的数据,并存入数据模型中;
输出就是将计算机处理后的结果(也在数据模型中定义)转化成人类能理解的方式输出;
算法的逻辑主体就是具体承载数据处理的代码流程,负责对数据模型中的输入数据进行处理、转换,并得到结果。
把问题抽象成数据模型
信息数字化:信息数字化就是把自然语言描述的信息,转化成方便代码数据模型表达的数字化信息,这是各种问题建模的一个通用思考方向。
很多情况下,信息数字化是建立数据模型的基础。数字化后的数据和数据模型是相辅相成的两个东西,先要知道有什么数据,才能设计相应的数据模型存储和表达这些数据,而好的数据模型不仅有利于数据的存储和访问,也有利于算法的高效实现。
类比和转化
把未知的问题转化成已知问题,然后再用已知的方法解决已知问题,是解决未知问题的基础手段。