【算法】冒泡排序

冒泡排序是一种较为简单的排序算法,其原理是通过不断比较、交换相邻的两个元素,使得最小(大)值不断靠在数组的一端,最终形成有序数组。

由于最小(大)不断向数组一端聚集,就像汽水中的气泡不断冒出,因此称之为冒泡排序。

 

话不多说,马上看个例子来感受一下冒泡排序。

现有一数组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循环,比来比去,换来换去,实在是太繁琐了,这样的排序方法效率肯定很低吧!

 

在后续的文章中,我会向大家介绍算法分析的一些内容,让大家可以客观分析某种算法的优劣,看看客观分析的结果是否和主观感受一致。

posted @ 2020-01-22 20:03  自学Java闯天下  阅读(85)  评论(0编辑  收藏  举报