冒泡排序
- 第一趟:相邻比较,若 前 > 后, 交换位置,直到最后一个位置为max
- 第二趟:相邻比较,若 前 > 后, 交换位置,直到倒数第二个位置为max(除最后一个位置)
- 第n趟:......
@Test public void test1(){ int[] arr = {7,6,5,4,3,2,1,1}; int temp; //比较趟数。共length - 1趟 for (int i = 1; i < arr.length; i++) { //每趟比较次数 第一趟:6次 length - 1 for (int j = 0; j < arr.length - i; j++) { if (arr[j] > arr[j + 1]){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } for (int j : arr) { System.out.print(j + " "); } }
优化
判断是否已经有序?
@Test public void test2() { int[] arr = {9,5,4,3,6,7,11,5}; int temp; //比较趟数。共length - 1趟 for (int i = 1; i < arr.length; i++) { //假设是排好序的 boolean flag = true; //每趟比较次数 第一趟:6次 length - 1 for (int j = 0; j < arr.length - i; j++) { if (arr[j] > arr[j + 1]){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; //发生了交换,则是未排好序的 flag = false; } } if (flag) { //说明是排好序的 break; } } for (int j : arr) { System.out.print(j + " "); } }
本文作者:九落
本文链接:https://www.cnblogs.com/9fall/p/17595656.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步