私はかなり新しいプログラマーであり、空の配列で開始するメソッドを作成し、その配列に昇順で値を追加するためにそれを呼び出すことができるようにしたいと考えています。
例えば:
insertInOrder(5);
insertInOrder(3);
insertInOrder(7);
insertInOrder(9);
insertInOrder(12);
値を持つ配列を返す必要があります:
0:3
1:5
2:7
3:9
4:12
「Array.sort」などのJavaの事前構築済みメソッドを使用せずにこれを行う方法に関するヒントは大歓迎です。ありがとうございました!
以下は、このコードでの私の試みです。ただし、実装できるのは、配列の末尾に値が最大の場合に値を追加することだけでした。
例えば:
insertInOrder(1);
insertInOrder(4);
insertInOrder(9);
insertInOrder(17);
insertInOrder(26);
動作しますが、このコードは動作しません:
insertInOrder(2);
insertInOrder(4);
insertInOrder(1);
insertInOrder(3);
insertInOrder(19);
コード:
public class InOrder
{
int[] arry = new int[20];
int target = -1;
int elements = 0;
public static void main(String[] args)
{
InOrder i = new InOrder();
i.insertInOrder(6);
i.insertInOrder(7);
i.insertInOrder(12);
i.insertInOrder(17);
i.insertInOrder(19);
i.insertInOrder(28);
for(int k = 0; k < 20; k++)
{
System.out.println(i.arry[k]);
}
}
public void insertInOrder(int n)
{
if (elements == 0)
{
arry[0] = n;
elements++;
}
else
{
for (int i = 0; i < elements; i++)
{
if (n > arry[i])
{
target = i;
}
}
if (target == -1)
{
target = 0;
}
if (n > arry[target])
{
for (int x = target; x < elements; x++)
{
if(x + 1 == elements)
{
arry[x + 1] = n;
elements++;
break;
}
}
}
}
}