麒麟子

~~

导航

<2009年1月>
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

统计

常用链接

留言簿(12)

随笔分类

随笔档案

Friends

WebSites

积分与排名

最新随笔

最新评论

阅读排行榜

评论排行榜

最原始,最纯朴的快速排序算法

 


int Partition(int a[],int l,int r)
{
 int p = a[l];//取首元素作为划分点

 while(l<r)
 {
  while(l<r&& a[r]>=p)
   --r;
  a[l] = a[r];

  while(l<r&& a[l]<=p)
   ++l;
  a[r] = a[l];
 }
 a[l] = p;
 return l;
}

void QSort(int a[],int l,int r)
{
 int p;
 if(l<r)
 {
  p = Partition(a,l,r);
  for(int i = l; i< r;++i)
  {
   cout<<a[i]<<" ";
  }
  cout<<endl;

  QSort(a,l,p-1);
  QSort(a,p+1,r);
 }
}

posted on 2009-01-04 15:48 麒麟子 阅读(268) 评论(0)  编辑 收藏 引用 所属分类: Programming


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理