我是一个相当新的程序员,想要创建一个以空数组开头的方法,并允许我调用它,以便按升序向该数组添加值。
例如:
插入顺序(5);
插入顺序(3);
插入顺序(7);
插入顺序(9);
插入顺序(12);
应该返回一个包含值的数组:
0:3
1:5
2:7
3:9
4:12
任何关于如何在不使用诸如“Array.sort”之类的 java 预构建方法的情况下解决此问题的提示将不胜感激。谢谢!
下面是我对这段代码的尝试;但是,我所能实现的只是在数组末尾添加一个值,如果它是最大的数。
例如:
插入顺序(1);
插入顺序(4);
插入顺序(9);
插入顺序(17);
插入顺序(26);
会工作,但这段代码不会:
插入顺序(2);
插入顺序(4);
插入顺序(1);
插入顺序(3);
插入顺序(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;
}
}
}
}
}