Ruby's Louvre

每天学习一点点算法

导航

侏儒排序

 
    var gnomeSort =function(array){
      var len = array.length,i = 0;//把i想象为侏儒
      while(i < len){
        if (i == 0 || array[i-1] <= array[i])
        //array[i-1]与array[i]想象为花盆
        //侏儒站于array[i]的前面
          i++;//由于顺序正确,侏儒就转而站在array[i+1]的前面
        else{
          swap(array,i, --i);//如果顺序不正确,交换花盘,站在array[i-1]的前面
          test(array)
        }
      }
    }
    var swap = function(array,a,b){
      var tmp = array[a];
      array[a] = array[b]
      array[b] = tmp;
    }

posted on 2010-01-21 01:11  司徒正美  阅读(1701)  评论(0编辑  收藏  举报