冒泡排序是一种较为简单的排序算法,其原理是通过不断比较、交换相邻的两个元素,使得最小(大)值不断靠在数组的一端,最终形成有序数组。
由于最小(大)不断向数组一端聚集,就像汽水中的气泡不断冒出,因此称之为冒泡排序。
话不多说,马上看个例子来感受一下冒泡排序。
现有一数组int[] array = {3, 10, 5, 6, 1, 8, 7, 4, 9, 2},以升序排列为例,其排序过程如下:
排序过程
代码如下:
public static void main(String[] args) {
int[] array = {3, 10, 5, 6, 1, 8, 7, 4, 9, 2};
for (int i = array.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (array[j] > array[j + 1]) {
int tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}
}
}
}
通过以上代码不难发现,冒泡排序的效率算是比较低的,只能用于数据量较小的场景。不过对于刚学习算法的萌新来说,冒泡排序还算是一个比较经典的排序算法。
学习完冒泡排序,想必大家都能有一种主观感受:双重for循环,比来比去,换来换去,实在是太繁琐了,这样的排序方法效率肯定很低吧!
在后续的文章中,我会向大家介绍算法分析的一些内容,让大家可以客观分析某种算法的优劣,看看客观分析的结果是否和主观感受一致。