您的位置:首页 > 其它

实现一个函数来调整该数组中数字的顺序实例

2015-08-16 19:07 316 查看
//输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
public class Test {
public static void main(String args[])
{
int[] a = new int[7];
for (int i = 0; i < a.length; i++) {
a[i] = i + 1;
}
order(a);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
}
}
public static void order(int[] array)
{
//另外构造一个数组
int[] orderArray = new int[array.length];
//用来存放新组数的下标
int num = 0;
//取出所有的奇数,只取没查过的下标,因此要-num
for(int i = 0;i < array.length - num;)
{
//如果为奇数
if(array[i] % 2 != 0)
{
//放到新组数
int temp = array[i];
orderArray[num ++] = temp;
//移动原数组再次并循环,注意此时i并未自增
for(int j = i;j < array.length - num;j ++)
{
array[j] = array[j + 1];
}
}
//若不是奇数则下一个
else
{
i ++;
}
}
//新数组添加原数组剩下的偶数
for(int i = 0;i <= array.length;i ++)
{
if(num <= array.length - 1)
{
orderArray[num ++] = array[i];
}
else
{
break;
}
}
//将新数组赋值给原数组
for (int i = 0; i < orderArray.length; i++) {
array[i] = orderArray[i];
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: