【发布时间】:2017-04-12 11:32:56
【问题描述】:
这是我所拥有的冒泡排序算法。
public void bubbleSort(int[] arr) {
boolean swapped = true;
int j = 0;
temp = 0;
while(swapped) {
swapped = false;
j++;
for(int i = 0; i < arr.length; i++) {
if (arr[i] > arr[i + 1]) {
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
swapped = true;
}
}
}
}
对于选择排序:
public int[] selectionSort(int[] arr) {
int i = 0;
int j = 0;
int minValue = 0;
int minIndex = 0;
int temp = 0;
for(i = 0; i < arr.length - j; j++) {
minValue = arr[i];
minIndex = i;
for(j = i; i < arr.length; j++) {
if (minValue < arr[i]) {
minValue = arr[j];
minIndex = j;
}
}
if (minValue < arr[i]) {
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
return arr;
}
不确定这些实现。 当我添加 System.out.println(arr[i]);在那里,冒泡排序的数字如下: 4 3 2 1 3 2 1 2 1 1 [我@6d06d69c
当放在第一个 if 语句之后。
现在当我创建一个 System.out.println(arr[i]);对于选择排序,结果如下: 1 2 3 4 5 [我@6d06d69c
当放在第二个 if 语句之后。
谢谢
【问题讨论】:
标签: java bubble-sort selection-sort