您的位置:首页 > 其它

数组:调整一个数组,把奇数放在前半部分,偶数在后半部分

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;

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