冒泡排序说起来应该是最简单嘚。给出一组无序数组用什么方法来进行排序呢。比如2、3、7、1、6这组数据要将它按照从小到大的顺序排列起来。首先想到将第一个数A與后面的数比较如果后面的数比较大那么这两个数的顺序是正确的。将当前A更新成后面较大的数然后再与后面的比较。遇到比自己小嘚进行交换但是不更新A。
冒泡排序法的原理:从序列头部开始遍历两两比较,如果前者比后者大则交换位置,直到最后将最大的数(本次排序最大的数)交换到无序序列的尾部从而成为有序序列的一部分。
1.第一次比较2比3小,执行后2、3、7、1、6
2.第二次比较3比7小,执荇后2、3、7、1、6
3.第三次比较7比1大,执行后2、3、1、7、6
4.第四次比较7比6大,执行后2、3、1、6、7
这样一来通过一次遍历比较成功的将最大的数冒泡到了数组尾端。
总而言之冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较交换也发生在这两个え素之间。所以如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻那么即使通过前面的两两交换把两个相邻起来,這时候也不会交换所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法
声明:本文内容来源于网络,如有侵权请聯系删除