如:[1,2,3,4,5,6,7,8] => [1,7,3,5,4,6,2,8],讲奇数放在数组前面部分,偶数放在数组后面部分。

实现方法一:

var a = [1,2,3,4,5,6,7,8];
a.sort(function(x){
    if(x % 2 === 0) return 1;
});

 

实现方法二:

var a = [1,2,3,4,5,6,7],m = a.length;

for(var i = 0; i < m; i++){
    var t = a[i];
    if(t % 2 === 0){        
        for(var j = m - 1; j > i; j--){
            if(a[j] % 2 !== 0){
                a[i] = a[j];
                a[j] = t;
                m--;
                break;
            }
        }
    }
}

方法二虽然实现了,但总是觉得有些冗余,而且跟方法一的结果有些出入,期待高人更优算法回复。。。

 posted on 2014-05-04 15:38  jacklau  阅读(3492)  评论(1编辑  收藏  举报