讲个故事。
今天上数据结构课,老师讲了快速排序算法,小明全程认真听讲,理解得十分透彻。
透彻到什么程度呢?他不仅自己能理解,还能给别的同学把这个算法的原理讲清楚,有一些原本上课没听懂的同学在听了小明的讲述之后,也能搞清楚快速排序算法的原理。
但是,无论小明理解得再透彻,到实际写程序的时候他也不能把算法讲给计算机听,还是得老老实实地敲代码。
下课之后小明回到宿舍,打开了他电脑上的VC6.0(逃……),用C语言写出了一个快速排序算法。小明使用C语言写出一个快速排序算法的过程就叫做实现,准确地说是使用C语言实现了快速排序算法。在这个句子里,“实现”是个动词,指的是使用某种计算机编程语言将某种程序设计思想写出来的过程,而且要保证写出来的代码是在可以在计算机上直接运行的。
同时,小明写出的这段代码也可以称为是快速排序算法的一种C语言实现。在这个句子中,“实现”是个名词,指的是内容符合某种程序设计思想或原理的一段代码,这段代码应该是可以在计算机上直接运行的。
过了一年,小明在做一个Java项目的时候,又需要用到快速排序算法,于是他又使用Java将快速排序算法写了一遍,这个过程就叫做小明使用Java语言实现了快速排序算法,他写出的这段代码可以称为是快速排序算法的一种Java实现。
总的来说,实现就是将某种原理性的东西转化为可执行的程序代码的过程,同一种原理可以使用多种不同的语言实现,即使是使用同一种语言,也可能有不同的实现方式。
原理是便于人类使用自然语言描述和理解的,而实现是可以在计算机上运行的。