代码改变世界

随笔档案-2012年10月18日

算法与数据结构——排序(二)冒泡排序(中)

2012-10-18 07:50 by 左眼微笑右眼泪, 523 阅读, 收藏,
摘要: 上一种冒泡算法,是从数组的第一个位置开始,把每个位置的数与其他剩下的数进行比较,如果后面的数有比它小的(或者大的,下面都以小的为例)就进行交换。通过分析这个过程,可以知道,这种算法,每次冒泡的结果都是把所有数里面最小的那一个提到了最前面,而其他的数的顺序都是杂乱无章的。第二次就把第二小的数提取到最前面。每次排序后,对后面的排序都没有帮助。我们就会想,有没有一种排序的算法在把最小的提到前面去的过程中,也能把第二小或者第三小的顺序往前面挪一点呢?这样的话,我们在第二次排序的时候,交换的次数就会减少。下面的冒泡排序就是这样的一种方法。它前一次排序的结果可以给后一次排序带来一定的帮助。它的主要思路如. 阅读全文