冒泡排序
两个两个进行比较,大的往后交换直到底部,每次交换到最后的数字不进行下一轮交换。二次循环中唯一变动的是需要比较的数组的长度arr.length-1。
for( int i = 0; i < arr.length-1; i++ ){
if ( arr[i] > arr[i+1] ){
swap(arr, i, i+1);
}
}
完整代码:
class Main {
public static void main(String[] args) {
int[] arr = {5, 9, 45, 37, 0, 64, 15};
//冒泡排序
for( int j = arr.length-1; j > 0; j--){
for( int i = 0; i < j; i++ ){
if ( arr[i] > arr[i+1] ){
swap(arr, i, i+1);
}
}
}
print(arr);
}
// 位置交换
static void swap(int[] arr, int m, int n){
int temp = arr[m];
arr[m] = arr[n];
arr[n] = temp;
}
// 数组输出
static void print(int[] arr){
for( int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
System.out.print("\n");
}
}