快速排序法的jscript版

原创 2004年10月29日 09:06:00

快速排序法是一个经典的算法,一般效率要高出冒泡法,在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 ); 

快速排序理解(挖坑填坑比喻理解)

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个...
  • WitsMakeMen
  • WitsMakeMen
  • 2013年12月02日 22:01
  • 4327

快速排序基本思路(通俗易懂+例子)

快速排序今天看到大神写的一篇快速排序的博客,肃然起敬,觉得原来快速排序这么简单 下面进行简单的试试快速排序的基本思想是 1、先从数列中取出一个数作为基准数 2、分区过程,将比这个数大的...
  • code_AC
  • code_AC
  • 2017年07月02日 22:06
  • 7638

快速排序法应用

题目:第一行输入整数,表示数组大小,第二行输入一个数组,第三行输入两个整数s,m,要求将数组中的元素从 s到m降序输出,要求利用快速排序法。 源程序: #include #include ...
  • It_BeeCoder
  • It_BeeCoder
  • 2016年10月22日 20:12
  • 357

快速排序法 java实现 三种方法实现

快速排序法 (1)定义 快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小。之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。 (...
  • u013276277
  • u013276277
  • 2017年05月18日 14:27
  • 1118

学过的算法中最快捷——快速排序法

上次总结了其他的三种算法:选择排序、冒泡排序和插入排序,这次总结一个更加高效的排序算法——快速排序法,如果想要了解其余三种算法,请移步c#版选择法、冒泡法、插入法和快速排序法分析与对比...
  • cd18333612683
  • cd18333612683
  • 2016年05月15日 20:24
  • 1008

结合题目讲解“快速排序算法”

根据一道快速排序算法自考题,进行学习方法上的反思,同时讲解自己对快速排序算法的理解...
  • sun15732621550
  • sun15732621550
  • 2016年10月16日 16:44
  • 2496

交换类排序——快速排序

1、算法思想: 从待排序记录序列中选取一个记录(通常选取第一个记录)为枢轴,其关键字设为K1然后将其余关键字小于k1的记录移到前面而将关键字大于或等于k1的记录移到后面,结果将待排序记录序列分为两个...
  • Din_Lei
  • Din_Lei
  • 2018年01月16日 20:13
  • 22

快速排序实例化(详细过程)

数组a[] = {8,10,23,48,7,6,11,13,17,19,20,14,5},  1)、设置两个变量i、j,排序开始的时候i=1,j=13; 2)以第一个数组元素作为关键数据,赋值给x...
  • qq_22186183
  • qq_22186183
  • 2016年12月24日 16:43
  • 1157

几种常用的排序算法(快速排序,希尔排序,堆排序,选择排序,冒泡排序)

1、归并排序       基本原理:归并排序也称合并排序,其算法思想是将待排序序列分为两部分,依次对分得的两个部分再次使用归并排序,之后再对其进行合并。操作步骤如下。 (1)将所要进行的排序序列分为左...
  • wenqingping5
  • wenqingping5
  • 2017年10月17日 20:47
  • 169

八大排序算法 之 快速排序(填坑法)

排序思想: 1,将第一个数字作为基准数字,将数组分为左右两部分,左边是比它小的数字,右边是比它大的数字; 2,将左部分按照上面的思想再次进行划分成两部分,依次类推; 3,将右部分按照上面的思想再...
  • yxb_yingu
  • yxb_yingu
  • 2016年05月07日 11:36
  • 1040
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:快速排序法的jscript版
举报原因:
原因补充:

(最多只允许输入30个字)