打印数列
public void printArr(double[] num) {
for (double obj:num) {
System.out.print(obj + " ");
}
System.out.println();
}
冒泡原始版
public double[] bubbleSort(double num[]) {
System.out.print("输入的原始数组是:");
printArr(num); //打出每次排序前的数字顺序
for (int i=0; i<num.length-1; i++){
for (int j=0; j<num.length-1-i; j++) {
if (num[j]>num[j+1]) {
double temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
}
System.out.print("第"+ i + "次排序结果是:");
printArr(num); //打出每次排序后的数字顺序
}
}
冒泡改良版 (当一个数列已经排好序了,最多只需要多跑一次就可以了)
public double[] bubbleSort2(double[] num) {
System.out.print("输入的原始数组是:");
printArr(num); //打出每次排序前的数字顺序
boolean flag = false; //flag标志是否已经排好序
int len = num.length;
for (int i=0; i<len-1 && !flag; i++) {
flag=true;
for (int j=0; j<len-i-1; j++) {
if (num[j]>num[j+1]) {
double temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
flag=false;
}
}
System.out.print("第"+ i + "次排序结果是:");
printArr(num); //打出每次排序后的数字顺序
}
return num;
}