Chinaunix首页 | 论坛 | 博客
  • 博客访问: 121945
  • 博文数量: 41
  • 博客积分: 1695
  • 博客等级: 上尉
  • 技术积分: 430
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-21 22:50
文章分类

全部博文(41)

文章存档

2010年(1)

2007年(23)

2006年(17)

我的朋友

分类: C/C++

2006-12-28 20:08:32

//06.12.22
//Author:Guo R.H
//    USTC
//   归并排序
#include
#include
#define N 500
void Merge(int a[], int b[], int p, int q, int r)
{
 int i,j,k=p;
 for(i=p,j=q+1; i<=q && j<=r; k++)
 {
  if(a[i]   b[k] = a[i++];
  else
   b[k] = a[j++];
 }
 if(j <= r)
 {
  for(;j<=r;k++)
   b[k] = a[j++];
 }
 if(i <= q)
 {
  for(;i<=q;k++)
   b[k] = a[i++];
 }
}
void MergeSort(int a[], int b[], int s, int t)
{
 int m,tr[N];
 if(s == t)
  b[s] = a[s];
 else
 {
  m = (s+t)/2;
  MergeSort(a,tr,s,m);
  MergeSort(a,tr,m+1,t);
  Merge(tr,b,s,m,t);
 }
}
int main()
{
 int i,a[N],b[N];
 for(i=0;i {
  a[i] = rand()%100;
  printf("%d ",a[i]);
 }
 printf("\n");
 MergeSort(a,b,0,N-1);
 for(i=0;i  printf("%d ",b[i]);
 return 0;
}
阅读(1232) | 评论(0) | 转发(0) |
0

上一篇:栈的链式结构

下一篇:Huffman树的创建

给主人留下些什么吧!~~