2023-08-01 09:48阅读: 22评论: 0推荐: 0

冒泡排序

  • 第一趟:相邻比较,若 前 > 后, 交换位置,直到最后一个位置为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 中国大陆许可协议进行许可。

posted @   九落  阅读(22)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.