私の目標は、ar []配列の要素をソートされた[]配列に移動し、それらを最小から最大まで並べ替えることです。私のループは配列の中で最小の要素を見つけて要素を大きな数に置き換えることになっているので、私はその部分で問題を抱えています。私はコードの大半を持っていると思うが、プログラムを実行すると、ソートされた[]配列のすべての要素は2です。私はここで何が間違っていますか?ある配列から別の配列にソートする
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
内部ループに 'i'への参照がないことに注目してください。なぜその結果は指数によって変わるでしょうか? – shmosel
これは悪いコード 'ar [i] = 1000000;'さらに、なぜソートされた要素を別の配列に配置したいのですか?オリジナルを保持したい場合は、オリジナルのコピーを作成し、現在の配列で作業してください。 – user3437460