- @param a
*/
public static void sort(Comparable[] a){
// 第一个for循环控制轮数,比较次数
// 第一轮比较的数是a.length-1
for (int i = a.length-1; i >0; i–) {
// 是数组相邻的两个数进行比较
for (int j = 0; j <i ; j++) {
int result= a[j].compareTo(a[j + 1]);
if(result>0){
each(a,j,j+1);
}
}
}
}
/**
-
判断两个数据大小
-
@param a
-
@param b
-
@return
*/
private static boolean greate(Comparable a,Comparable b){
return a.compareTo(b)>0;
}
/**
-
交换
-
@param a
-
@param i
-
@param j
*/
private static void each(Comparable[] a,int i,int j){
Comparable temp = a[i];
a[i]=a[j];
a[j]=temp;
}
}
测试类:
package com.tjcu;
import java.util.Arrays;
/**
-
@author 王恒杰
-
@version 1.0
-
@date 2021/9/22 8:55
-
@email 1078993387@qq.com
-
@Address 天津
-
@Description:
*/
public class TestBubble {
public static void main(String[] args) {
Integer[] arr={9,8,7,65,4,3,2,12};
Bubble.sort(arr);
System.out.println(Arrays.toString(arr));
}
}