VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • c#实现快速排序法

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  快速排序法是对冒泡排序的一种改进。它的基本思想是,通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。代码如下:privatevoidswap(refintl,refintr)
{
  inttemp;
  temp=l;
  l=r;
  r=temp;
}
publicvoidSort(int[]list,intlow,inthigh)
{
  intpivot;//存储分支点
  intl,r;
  intmid;
  if(high<=low)
    return;
  elseif(high==low+1)
  {
    if(list[low]>list[high])
      swap(reflist[low],reflist[high]);
    return;
  }
  mid=(low+high)>>1;
  pivot=list[mid];
  swap(reflist[low],reflist[mid]);
  l=low+1;
  r=high;
  do
  {
    while(l<=r&&list[l]<pivot)
      l++;
    while(list[r]>=pivot)
      r--;
    if(l<r)
      swap(reflist[l],reflist[r]);
  }while(l<r);
  list[low]=list[r];
  list[r]=pivot;
  if(low+1<r)
    Sort(list,low,r-1);
  if(r+1<high)
    Sort(list,r+1,high);
}



相关教程