数组:调整一个数组,把奇数放在前半部分,偶数在后半部分
2015-04-02 10:20
309 查看
这个笔试题,我在网上找了答案,但是我上机试了一下,发现网上的答案有错误,所以我又调试了一下,先将题目展示一下,之后说说我的思路,最后奉上我的代码。
题目为:调整一个数组,把奇数放在前半部分,偶数在后半部分。
思路为:从前面开始找偶数,从后面开始找奇数,用begin和end分别做标记,找到之后进行交换,但是在交换之前一定要判断begin是否小于end,否则会出现错误。
代码如下:
/**
* 调整一个数组,把奇数放在前半部分,偶数在后半部分
* 思路:从前面开始找偶数,从后面开始找奇数
* 0 1 2 3 4 5
* 1, 2, 3, 4, 5, 6
*/
public static int[]a =new int[]{1,2,3,4,5,6};
public static void main(String[] args) {
RecordOddEven();
display();
}
/**
* 思路是:从前面开始扫描,从前面开始找奇数,从后面开始找偶数,如果找到了就交换,记住交换之前也一定要记住这个条件:begin<end
*/
public static void display(){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
public static void RecordOddEven(){
int begin=0;
int end=a.length-1;
while(begin<end){
while(!isEven(a[begin])){
begin++;
}
while(isEven(a[end])){
end--;
}
if(begin<end){
int temp=a[begin];
a[begin]=a[end];
a[end]=temp;
begin++;
end--;
}
}
}
//判断是否是偶数
public static boolean isEven(int b){
return b%2==0;
}
题目为:调整一个数组,把奇数放在前半部分,偶数在后半部分。
思路为:从前面开始找偶数,从后面开始找奇数,用begin和end分别做标记,找到之后进行交换,但是在交换之前一定要判断begin是否小于end,否则会出现错误。
代码如下:
/**
* 调整一个数组,把奇数放在前半部分,偶数在后半部分
* 思路:从前面开始找偶数,从后面开始找奇数
* 0 1 2 3 4 5
* 1, 2, 3, 4, 5, 6
*/
public static int[]a =new int[]{1,2,3,4,5,6};
public static void main(String[] args) {
RecordOddEven();
display();
}
/**
* 思路是:从前面开始扫描,从前面开始找奇数,从后面开始找偶数,如果找到了就交换,记住交换之前也一定要记住这个条件:begin<end
*/
public static void display(){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
public static void RecordOddEven(){
int begin=0;
int end=a.length-1;
while(begin<end){
while(!isEven(a[begin])){
begin++;
}
while(isEven(a[end])){
end--;
}
if(begin<end){
int temp=a[begin];
a[begin]=a[end];
a[end]=temp;
begin++;
end--;
}
}
}
//判断是否是偶数
public static boolean isEven(int b){
return b%2==0;
}
相关文章推荐
- 12.输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 给id那个一个数组,请调整数组中数的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 输入一个整型数组,实现一个函数,来调整数组中的数字顺序是的数组中所有的奇数位于数组前半部分,所有偶数位于数组的后半部分。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 调整数组使奇数全部都位于偶数前面。 题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- C语言 程序实现将一个数组所有奇数放在前半部分,偶数位于后半部分
- 【数据结构】输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 剑指offer题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- //1.调整数组使奇数全部都位于偶数前面。 //题目: //输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序使得 所有奇数位于数组的前半部分,所有偶数位于数组后半部分
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。