【算法】冒泡排序

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

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

话不多说,马上看个例子来感受一下冒泡排序。
现有一数组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循环,比来比去,换来换去,实在是太繁琐了,这样的排序方法效率肯定很低吧!

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容