4.2 冒泡排序
Posted 极夜编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.2 冒泡排序相关的知识,希望对你有一定的参考价值。
4.2 冒泡排序
冒泡排序(Bubble Sort)
冒泡排序是最基础的交换排序。冒泡排序之所以叫冒泡排序,正是因为这种排序算法的每一个元素都可以像小气泡一样,根据自身大小,一点一点向着数组的一侧移动。
按照冒泡排序的思想,要把相邻的元素两两比较,当一个元素大于右侧相邻元素时,交换它们的位置;当一个元素小于或等于右侧相邻元素时,位置不变。
例如一个有8个数字组成的无序序列,进行升序排序。
这样一来,元素9作为数列中最大的元素,就像是汽水里的小气泡一样,“漂”到了最右侧。这时,冒泡排序的第1轮就结束了。数列最右侧元素9的位置可以认为是一个有序区域,有序区域目前只有1个元素。
接着进行第2轮排序:
第2轮排序结束后,数列右侧的有序区有了2个元素。
根据相同的方法,完成剩下的排序:
算法分析
冒泡排序是一种稳定排序,值相等的元素并不会打乱原本的顺序。由于该排序算法的每一轮都要遍历所有元素,总共遍历n-1轮。
逆序对(Inversion)
假设数组A[0..n-1]有n个不同的整数,如果A[i] > A[j](i小于j),那么A[i]和A[j]就被称为逆序对。
以上是关于4.2 冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章