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

数据结构与算法之冒泡排序,第1张

数据结构与算法冒泡排序 前言

作为一名Java开发工程师,想必很多小伙伴在数据结构与算法的道路上难以突破,今天小编就和大家一起去突破它。开启算法之路。只要肯坚持,没有突破不了的困难。

冒泡排序

题目描述:

给定一个无序的数组,按照从小到大的顺序进行排序。

例如:

int[] arr = {3, 1, 4, 7, 87, 32, 2, 5};

返回一个有序的数组:sortArray:{1, 2, 3, 4, 5, 7, 32, 87}

实现思想:

由两个for循环实现,第一个for循环控制的是0~n-1,0~n-2,... 0~0,什么意思呢?就是说控制的是第几次冒泡;第二个for循环实现一次遍历中,不同位置上数据的交换(如上图所示)。

大家可以将上述中后续的几次冒泡排序实现过程, 手动画一下哦,相信你有不一样的收获。

代码实现(实现主要逻辑)
    
    private static void bubbleSort(int[] arr) {
        // 1、边界处理
        if (arr == null || arr.length < 2) {
            return;
        }
        // 2、实现主逻辑
        int n = arr.length;
        // 0 ~ n-1
        // 0 ~ n-2
        // 0 ~ n-3
        for (int i = n - 1; i >= 0; i--) {
            // 0 ~ n-1 做的一些事情
            // 0和1是否交换,1和2是否交换 。。。
            for (int j = 1; j <= i; j++) {
                if (arr[j - 1] < arr[j]) {
                    swapArray(arr, j - 1, j);
                }
            }
        }
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5520584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存