快速排序法的jscript版

来源:互联网 发布:tp框架的留言板源码 编辑:程序博客网 时间:2024/06/10 13:21

快速排序法是一个经典的算法,一般效率要高出冒泡法,在web客户端的表格数据排序中十分有用。以下给出该算法的jscript实现,由于该算法很简单,就不添加注释了。

function quickSort( data , low ,high , bgreater )
{
 var mid = data[ low ];
 var index = low;
 for( var i = low+1 ; i <= high ; i++ )
 {
  var needswap = false;
  if( bgreater )
   needswap = data[ i ] < mid;
  else
   needswap = data[ i ] > mid;
   
  if( needswap )
  {
   index++ ;
   swap( data , i , index );
  }
 }
 
 swap( data , index , low );
 
 if( index - 1 > low )
  quickSort( data , low  ,index - 1 ,bgreater);
 if( index + 1 < high )
  quickSort( data , index + 1 , high ,bgreater);
 
}

function swap( data_input , i ,low )
{
 var dt = data_input[ i ];
 data_input[ i ] = data_input[ low ];
 data_input[low ] = dt;
}



测试程序如下:
var data = new Array( 7 ,9 ,3 ,5 , 6 ,8 ,4 ,2, 0 ,1,42 );
WScript.Echo( data );
quickSort( data , 0 , data.length - 1 ,true);
WScript.Echo( data ); 

原创粉丝点击