4.2 冒泡排序

Posted 极夜编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.2 冒泡排序相关的知识,希望对你有一定的参考价值。

4.2 冒泡排序

 

冒泡排序(Bubble Sort)

冒泡排序是最基础的交换排序。冒泡排序之所以叫冒泡排序,正是因为这种排序算法的每一个元素都可以像小气泡一样,根据自身大小,一点一点向着数组的一侧移动。

按照冒泡排序的思想,要把相邻的元素两两比较,当一个元素大于右侧相邻元素时,交换它们的位置;当一个元素小于或等于右侧相邻元素时,位置不变。

例如一个有8个数字组成的无序序列,进行升序排序。

这样一来,元素9作为数列中最大的元素,就像是汽水里的小气泡一样,到了最右侧。这时,冒泡排序的第1轮就结束了。数列最右侧元素9的位置可以认为是一个有序区域,有序区域目前只有1个元素。

4.2 冒泡排序

接着进行第2轮排序:

4.2 冒泡排序

2轮排序结束后,数列右侧的有序区有了2个元素。

4.2 冒泡排序

根据相同的方法,完成剩下的排序:

4.2 冒泡排序


算法分析

冒泡排序是一种稳定排序,值相等的元素并不会打乱原本的顺序。由于该排序算法的每一轮都要遍历所有元素,总共遍历n-1

4.2 冒泡排序


4.2 冒泡排序


逆序对(Inversion)

假设数组A[0..n-1]n个不同的整数,如果A[i] > A[j]i小于j),那么A[i]A[j]就被称为逆序对。


【视频讲解】

以上是关于4.2 冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

Java数据结构与算法之冒泡排序选择排序

为啥冒泡排序被称为冒泡排序?

冒泡排序算法有几种写法?

nodejs实现冒泡排序和快速排序

java编程的冒泡等排序示例

冒泡排序