嘿,我試圖測試我的選擇排序算法,但我在控制檯中得到的所有輸出只是「[I @ 15db9742」 有人請解釋我爲什麼會收到垃圾郵件?這真的讓我感到莫名其妙,這可能是IDE的問題,還是代碼中的東西?Java選擇排序實現不工作的輸出「[I @ 15db9742」
感謝
import java.util.Arrays;
public class SelectionSorterTest {
// Factories
// Queries
/**
* Sorts a copy of the input array.
* @param input an array.
* @return a sorted copy of input.
*/
public static int[] sort (int[] input) {
int[] sorted = Arrays.copyOf(input, input.length);
for(int i = 0; i < sorted.length - 1; i++)
{
int minIndex = i;
for(int j = i + 1; j < sorted.length - 1; j++)
{
if(sorted[j] < sorted[minIndex])
{
minIndex = j;
}
}
if(i != minIndex)
{
swap(sorted, minIndex, i);
}
}
return sorted;
}
// Commands
// Private
// disabled constructor
private SelectionSorterTest() { }
private static void swap (int[] arr, int x, int y) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
public static void main(String[] args)
{
int[] Array = {9,7,6,4,3,2,21,1};
System.out.println(sort(Array));
}
}
'的System.out。println(sort(Array));'你正在打印一個數組,以便你得到這個數組在內存中的地址。使用循環打印該數組的元素! –
我真金!出於某種原因,它不排序最後一個元素。 但是,謝謝! [2,3,4,6,7,9,21,1] –
你的算法不正確,你缺少循環中數組的最後一個元素,刪除'-1'部分來糾正它 –