public static void bubblesort(int[] arr ){
if (arr == null || arr.length < 2) {
return;
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] >arr[j + 1]) {
swap(arr[j], arr[j + 1]);
}
}
}
}****
在练习算法中写了如下交换器,在写冒泡排序时发现并没有交换。
public static void swap(int i, int j) {
int cur = i;
i = j;
j = cur;
}
冒泡排序部分
public static void bubblesort(int[] arr ){
if (arr == null || arr.length < 2) {
return;
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] >arr[j + 1]) {
swap(arr[j], arr[j + 1]);
}
}
}
}
查了一下原因:
基本数据类型形参是传值
引用数据类型形参是传地址