我的目標是將ar []數組中的元素移動到排序後的[]數組中,並將它們從最小排序到最大排序。我對這個部分有問題,但是因爲我的循環應該找到數組中的最小元素,然後用大數來替換元素。我想我大部分的代碼都被關閉了,但是當我運行這個程序時,排序的[]數組中的每個元素都是2.我在這裏做了什麼錯誤?從一個陣列排序到另一個陣列,Java
public class Lab1
{
public static void main(String argv[])
{
int ar[] = { 7, 5, 2, 8, 4, 9, 6 };
int sorted[] = new int[ar.length];
int smallest = ar[0];
int smallestindex = 0;
for (int i=0; i<ar.length; i++)
{
for (int n=0; n<ar.length; n++)
{
if (ar[n] < smallest)
{
smallest = ar[n];
smallestindex = n;
}
}
sorted[i] = smallest;
ar[i] = 1000000;
}
// print sorted array:
for (int i=0; i<sorted.length; i++)
{
System.out.println("sorted[" + i + "] = " + sorted[i]);
}
}
}
只需在排序之前製作數組的副本。 – crook
注意內部循環沒有提及'我'?爲什麼其結果會因索引而改變? – shmosel
這是一個糟糕的代碼'ar [i] = 1000000;'此外,爲什麼要將排序的元素放在另一個數組中?如果您想保留原件,只需複製原件並在當前陣列上工作即可。 – user3437460