原理:
逐层通过无序区中的相邻元素间关键字的比较和位置的交换,使最小的元素往上冒泡
第1种
private static void bundleSort1(){
int[] arr = {1,3,7,4,8,9,6,2,5};
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1; j++) {
if (arr[j] > arr[j+1]) {
int tem = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tem;
}
}
}
System.out.println(Arrays.toString(arr));
}
第2种
private static void bundleSort2(){
int[] arr = {1,3,7,4,8,9,6,2,5};
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
if (arr[j] > arr[j+1]) {
int tem = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tem;
}
}
}
System.out.println(Arrays.toString(arr));
}
第3种
private static void bundleSort3(){
int[] arr = {1,3,7,4,8,9,6,2,5};
for (int i = 0; i < arr.length; i++) {
for (int j = i+1; j < arr.length; j++){
if (arr[i] > arr[j]) {
int tem = arr[i];
arr[i] = arr[j];
arr[j] = tem;
}
}
}
System.out.println(Arrays.toString(arr));
}
第4种 优化有序序列的排序
private static void bundleSort4(){
boolean hassorted;
int[] arr = {1,3,7,4,8,9,6,2,5};
for (int i = 0; i < arr.length-1; i++) {
hassorted = true;
for (int j = 0; j < arr.length-1-i; j++) {
if (arr[j] > arr[j+1]) {
hassorted = false;
int tem = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tem;
}
}
if (hassorted) {
break;
}
}
System.out.println(Arrays.toString(arr));
}