Algorithm Playground

HTML

<pre id="output"></pre>

JavaScript

// fiddle template from
// http://jsfiddle.net/IQAndreas/qsPEc/1/
function out()
{
    var args = Array.prototype.slice.call(arguments, 0);
    document.getElementById('output').innerHTML += args.join(" ") + "\n";
}

// created by ali LIM
// konglie [at] kurungkurawal.com
// fiddle for
// https://www.facebook.com/groups/ForumJavaIndonesia/permalink/10155578044368017/
function fn(arr){
	
	out("before: " + arr);
	
  var head = arr.length;
  var tail = 0;
  var n;
  for(;tail < head;tail++){
  	n = arr[tail];
    if(n !== 0){
    	while(--head > tail){
      	if(arr[head] !== 0){
        	arr[tail] = arr[head];
          arr[head] = n;
        	break;
        }
      }
    }
  }
  
	out("after : " + arr);
  out('');
}

fn([0,9,2,5,7,3,5,0]);
fn([0,8,9,4,0,7,6,2,0]);
fn([5,9,0,4,0,7,0,1,0]);