算法就是任何良好定义的计算过程,该过程取某个值或者值得集合做为输入,而且产生某个值或者值的集合做为输出。即,算法就是把输入转换成输出的计算步骤所构成的序列。程序员
算法是解决计算问题的工具。通常的,问题陈述说明了指望的输入输出关系,算法则描述一个特定的计算过程来实现这种输入输出关系。算法
一个常常出现的问题就是排序问题。这是由于许多程序使用排序做为一个中间步,排序是计算机科学的基本操做。网络
算法必须精确的描述所要遵循的计算过程。数据结构
算法问题共有的两个特征:工具
数据结构是一种存储和组织数据的方式,目的是便于访问和修改。不存在一种单一的数据结构对全部用途均有效,重点是要知道不一样的数据结构的优点和劣势。性能
NP彻底问题包括,旅行商问题等。spa
物理的限制对不断提升的时钟速度给出了基本的障碍:功率密度随着时钟速度超线性的增长,一旦时钟速度变得足够快,芯片将有熔化的危险。为了每秒执行更多计算,芯片被设计成包含不止一个而是几个处理“核”。多核计算机能够理解为单一芯片上的几台顺序计算机,或者说是“并行计算机”。为了从多核计算机得到最佳性能,设计算法时必须考虑并行性。设计
归并排序算法优于插入排序算法。通常来讲,随着问题规模的增大,归并排序的相对优点也会增大。对象
应该像计算机硬件同样把算法当作一种技术。整个系统的性能不但依赖于选择快速的硬件,还依赖于选择有效的算法。算法和其余计算机技术(计算机体系结构与制造技术、GUI、面向对象系统、万维网技术、有线无线网络快速组网技术)同样,正在快速发展。排序
算法是当代计算机中使用的大多数技术的核心。
在解决较大规模的问题时,算法之间的效率的差异变得特别显著。
是否具备算法知识与技术的坚实基础是区分真正熟练的程序员与初学者的特征。