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

调整数组顺序使奇数位于偶数前面

http://www.nowcoder.com/questionTerminal/beb5aa231adc45b2a5dcc5b62c93f593

考虑两种方法

1.使用数组,时间复杂度On 空间复杂度On 这个应该都会
2.主要看这个空间复杂度O1
可以变相理解是冒泡排序的一种,如果arr[i]是偶数且arr[i+1]是奇数,则进行交换,否则不进行交换。

代码1,2为了加快程序设置的flag,如果一次扫描没有交换位置,则表示条件成立,break程序。

public class Solution {
public void reOrderArray(int [] array) {

    for(int j=0; j<array.length-1; j++){
        boolean flag = false;//1
        for(int i=0; i<array.length-1-j; i++){

            if(!isJishu(array[i])&&isJishu(array[i+1])){
                int tmp = array[i+1];
                array[i+1] = array[i];
                array[i] = tmp;
                flag = true;
            }
        }
        if(flag == false){
            break;//2
        }
    }
}

public boolean isJishu(int target){
    if(target%2==0){
        return false;
    }else{
        return true;
    }
}

}

全部评论

相关推荐

点赞 评论 收藏
分享
程序员牛肉:你这简历有啥值得拷打的?在牛客你这种简历一抓一大把,也就是个人信息不一样而已。 关键要去找亮点,亮点啊,整个简历都跟流水线生产出来的一样。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务