是的哦,选择的语言不同,语言底层的实现和优化都会有比较大的区别,所以对于算法,在一些“常数”的时间上会有区别。所谓的“常数”的时间,是指比如在这个例子里,选择排序和插入排序都是O(n^2)级别的排序算法,我用C++实现选择排序快一些;你用PHP实现有可能插入排序就快一些。尤其对于脚本语言,这个问题会更严重,代码的执行效率会严重依赖于具体逻辑的写法。这是因为脚本语言中,对底层函数都会有专门的优化,但是上层逻辑由于使用解析器执行,相应就会比较慢。
如果选择使用脚本语言实现这个课程的代码,不用过于纠结“常数项”算法改进的结果。了解这个思路就好了。不过看了下一小节你就会知道,当我们在C++中将插入排序的swap进行优化以后,在C++里插入排序也比选择排序快了。所以,这说明在PHP语言中,swap对于算法性能的影响并不大:)