上次的培训中,我给大家讲解了有关于“排序”的问题。我们讲到的算法是“选择排序”,书本上的算法是“冒泡排序”。其实,排序的算法有很多,感兴趣的同学可以看:http://zh.wikipedia.org/zh/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95 的介绍,挺全面的了。
但在实践中,我们掌握1~2种排序就好了,足以对付算法竞赛的需要了。
但是,牛人到处有,网上特别多。有一位据说是日本的程序员(希望他在这次地震中平安无恙),写了个程序,用图形化的方式展示了各种排序的算法特性。在此,我做几点提示:1、排序的目标是左低右高;2、闪动的方块,表示程序现在正在读取的数组元素值;3、要注意观察扫描过程中,闪动的方块的活动范围有否发生变化?
下面是这位程序员的程序:http://jsrun.it/norahiko/oxIy
Bubble:冒泡排序
Selection:选择排序
Insertion:插入排序
Quick:快速排序
Heap:堆排序