冒泡算法
import java.util.Arrays;
public class TestBubbleSort {
public static void main(String[] args) {
int count=0;
int[] arr = {1,2,25,52,5,35,36,48};
int count0 = bubbleSort1(arr,count);
System.out.println(Arrays.toString(arr));
System.out.println(count0);
}
public static int bubbleSort1(int[] arr,int count) {
/*
* 基础版
*/
int count1 = count;
int temp;
for(int i = 0;i<arr.length-1;i++){ //冒泡趟数
for(int j = 0;j<arr.length-1;j++){
if(arr[j+1]<arr[j]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
count1 +=1;
}
return count1;
}
/*
* 改进版,可以减少冒泡趟数
*/
public static int bubbleSort2(int[] arr,int count){
boolean flag = true;
int count2 = count;
while(flag){
int temp;
for(int i=0;i<arr.length-1;i++){
flag = false;
for(int j=0;j<arr.length-1;j++){
if(arr[j+1]<arr[j]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = true;
}
}
if(!flag){
break; //如没有发生交换就退出循环
}
count2 +=1;
}
}
return count2;
}
}