冒泡排序
冒泡排序
1、比较数组中两个相邻的元素,如果第一个数比第二个数大,交换他们的位置
2、每一次比较,都会产生一个最大,或者是最小的数字;
3、下一轮则少一次排序`
4、依次循环直到结束
package com.study.array;
import java.util.Arrays;
public class ArrayDemo07 {
public static void main(String[] args) {
int[] a={1,23,543,2,5,654,3,456,6,7,3,26,0};
sort(a);
System.out.println(Arrays.toString(a));//[654, 543, 456, 26, 23, 7, 6, 5, 3, 3, 2, 1, 0]
}
public static int[] sort(int[] array){
//临时变量
int temp=0;
int sum=0;//sum统计次数判断优化是否有效
//外层循环,判断我们这个要走多少次
for (int i = 0; i < array.length-1; i++) {
boolean flag=false;//通过flag标识位减少没有意义的比较
//内层循环,交换位置
for (int j = 0; j < array.length-1; j++) {
if(array[j+1]>array[j]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
flag=true;
}
sum++;
}
if(flag==false) {
break;
}
}
System.out.println(sum);
return array;
}
}
浙公网安备 33010602011771号