实际上,只有一个for循环可以实现您的功能.
int[] x = {7, 6, 6, 5, 3, 2, 1 };
//Declare an int array with length = x.length+1;
int[] bigger = new int[x.length+1];
int add = 4;
/** Define a variable to indicate that if a property location is found.*/
boolean found = false;
/** Define a variable to store an index for insert*/
int indexToInsert = 0;
for (int i = 0; i < x.length; i++){
if ( !found && add >= x[i]){
found = true;
indexToInsert = i;
bigger[indexToInsert] = add;
i--;
}
else{
if(found)
{
bigger[i+1] = x[i];
}else
{
bigger[i] = x[i];
}
}
}
/*
* If a property index is not found. Then put the value at last.
*/
if(!found)
{
indexToInsert = x.length;//
bigger[indexToInsert] = add;
}
一些示例如下运行:
初始数组为[7、6、6、5、3、2、1]
加= 4
[7, 6, 6, 5, 4, 3, 2, 1]
加= -1
[7, 6, 6, 5, 3, 2, 1, -1]
加= 100
[100, 7, 6, 6, 5, 3, 2, 1]