public class BubbleSortDemo {
public static void main(String[] args) {
// 创建一个数组
int[] arr = { 24, 69, 80, 57, 13 } ;
System.out.print("排序前: ");
print(arr);
// 排序
bubbleSort2(arr);
System.out.print("排序后: ");
print(arr);
}
/**
* 冒泡排序
* @param arr
*/
public static void bubbleSort2(int[] arr){
for(int y = 0 ; y < arr.length - 1 ; y++){
for(int x = 0 ; x < arr.length - 1 - y; x++){
if(arr[x + 1] < arr[x]){
int temp = arr[x] ;
arr[x] = arr[x + 1];
arr[x + 1 ] = temp ;
}
}
}
}
/**
* 冒泡排序推导过程
* @param arr
*/
public static void bubbleSort1(int[] arr){
// 第一次排序
// arr.length - 1: -1的目的就是防止数组角标越界
for(int x = 0 ; x < arr.length - 1 - 0; x++){
if(arr[x + 1] < arr[x]){
int temp = arr[x] ;
arr[x] = arr[x + 1];
arr[x + 1 ] = temp ;
}
}
// 第二次
for(int x = 0 ; x < arr.length - 1 - 1; x++){
if(arr[x + 1] < arr[x]){
int temp = arr[x] ;
arr[x] = arr[x + 1];
arr[x + 1 ] = temp ;
}
}
// 第三次
for(int x = 0 ; x < arr.length - 1 - 2; x++){
if(arr[x + 1] < arr[x]){
int temp = arr[x] ;
arr[x] = arr[x + 1];
arr[x + 1 ] = temp ;
}
}
// 第四次
for(int x = 0 ; x < arr.length - 1 - 3; x++){
if(arr[x + 1] < arr[x]){
int temp = arr[x] ;
arr[x] = arr[x + 1];
arr[x + 1 ] = temp ;
}
}
}
/**
* 遍历
* @param arr
*/
public static void print(int[] arr){
System.out.print("[");
for(int x = 0 ; x < arr.length ; x++){
if(x == arr.length - 1){
System.out.println(arr[x] + "]");
}else {
System.out.print(arr[x] + ", ");
}
}
}
}
|
|