排序算法之冒泡排序

思路:

冒泡排序是将下标最小的值与相邻的值进行比较,如果逆序则交换位置,然后后移一位继续与相邻的值进行比较,

所有值都参与过就结束。第一轮将最大的值(代码注释里的第0大)放到最后一个位置(代码注释里的倒数第0个位置)

 

依次类推,每一轮确定第i大的数放到倒数第i个位置,共有arr.length - 1轮(如果某轮没有一次交换位置,那么表明已经有序,可以提前退出)

 代码:

复制代码
 1     /**
 2      * 冒泡排序
 3      * @param arr
 4      */
 5     public static void bubbleSort(int[] arr) {
 6         if (arr == null || arr.length == 0) {
 7             return;
 8         }
 9         //共arr.length - 1趟
10         for (int i = 0; i < arr.length - 1; i++) {
11             //每趟确定第i大的数放在倒数第i个位置,需要比较arr.length - 1 - i次
12             int temp;
13             //如果某轮一次也没有交换,那么就不用再进行排序了
14             boolean flag = true;
15             for (int j = 0; j < arr.length - 1 - i; j++) {
16                 //逆序则进行交换
17                 if (arr[j] > arr[j + 1]) {
18                     temp = arr[j];
19                     arr[j] = arr[j + 1];
20                     arr[j + 1] = temp;
21                     flag = false;
22                 }
23             }
24             if (flag) {
25                 break;
26             }
27         }
28     }
复制代码

 

posted @   Java厨师长  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示