Move zeroes to end

Playing with algorithms. Move zeroes to end array, while maintaining order of non-zero numbers. O(n) linear time, using singe loop.

by lasha

JavaScript

//var moveZeroes = [6,4,0,-4,0,1,3];
var moveZeroes = [0, 1, 0, 2, 0, 3, -4, 0];
//var moveZeroes = [1, 0, 1];

var second = -1;
for(var i = 0; i < moveZeroes.length; i++) {
  if(moveZeroes[i] === 0){
  	if(second == -1 || moveZeroes[second] != 0){
      second = i;
    }
  } else {
  	if(second > -1){
    	var temp = moveZeroes[i];
      moveZeroes[second] = temp;
      moveZeroes[i] = 0;
      second++;
    }
  }
}
console.log(moveZeroes);