排序算法之冒泡排序
思路:
冒泡排序是将下标最小的值与相邻的值进行比较,如果逆序则交换位置,然后后移一位继续与相邻的值进行比较,
所有值都参与过就结束。第一轮将最大的值(代码注释里的第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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix