冒泡排序的原理:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
java实现:
/**
* 冒泡排序(Bubble Sort)
* 冒泡升序排序
* 时间复杂度 O(n²)
* @param array 排序数组
* @param sort 升序减序 false 减序 true升序
*
*/
public static void bubbleSort(int [] array,boolean sort){
for (int i = 0; i < array.length; i++) {
System.err.println("循环次数"+i);
for (int j =i; j < array.length-1; j++) {
if (sort) {
//升序
System.out.println("对比数次数"+array[i]+"|"+array[j+1]);
if (array[i]>array[j+1]) {
int temp =array[j+1];
array[j+1]=array[i];
array[i]=temp;
}
}else {
//减序
System.out.println("对比数次数"+array[i]+"|"+array[j+1]);
if (array[i]<array[j+1]) {
int temp =array[j+1];
array[j+1]=array[i];
array[i]=temp;
}
}
}
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
}