网上有很多关于冒泡排序的文章,大家可以自行搜索一下,再此不再赘述,这里仅仅用一个例子简单写一下排序的过程,方便后续遗忘的时候快速回忆起算法过程,从而快速写出代码。
冒泡排序(英语:Bubble Sort)是一种简单的排序算法。
个人感觉叫沉底排序更加形象,就像一块石头丢入水中,沉到底部,冒出气泡。
这里以 7 6 5 4 3 2 1为例子:
第一遍,两两交换,将最大的7沉底,变为 6 5 4 3 2 1 7
第二遍,两两交换,将次大的6沉底,变为 5 4 3 2 1 6 7
第三遍,两两交换,将次大的5沉底,变为 4 3 2 1 5 6 7
第四遍,两两交换,将次大的4沉底,变为 3 2 1 4 5 6 7
第五遍,两两交换,将次大的3沉底,变为 2 1 3 4 5 6 7
第六遍,两两交换,将次大的2沉底,变为 1 2 3 4 5 6 7
第七遍,检查发现已经是排好序的了,排序完成。
当然这是最坏的情况,有些时候不需要做完这N遍排序,可以加个标志位,发现某此排序时若所有数据位置都没有调整,说明是已经时排好序的了,就可以直接退出,排序完成。