Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341767
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:05:28

#include
using namespace std;
int a[3];
int b[3];
 void mergesort(int low,int high);
 int merge(int low ,int high,int mid);
int main()
{
   
    for(int i=0;i<3;i++)
    {
      cin>>a[i];
       
    }
    for(int i=0;i<3;i++)
    {
            mergesort(i,2);
       
        cout<    }    
       
    getchar();
    getchar();
    getchar();
    return 0;
}    
   
    void mergesort(int low,int high)
    {
        int mid=(low+high)/2;
        mergesort(low,mid);
        mergesort(mid+1,high);
        merge(low,mid,high);
    }
    int merge(int low ,int high,int mid)
    {
       int h=low,i=low,j=mid+1,k;
       while((h<=mid)&&(j<=high))
       {
           if(a[h]<=a[j])
           {b[i]=a[h];h++;}
           else
           {b[i]=a[j];j++;}
           i++;
       }
       if(h>mid)
       for(k=j;k       {
           b[i]=a[k];
       i++;
   }
   else
   for(k=h;k<=mid;k++)
   {
   b[i]=a[k];
   i++;
}
for(k=low;ka[k]=b[k];
return a[i];
}

--------------------next---------------------
#include
using namespace std;
int a[3];
int b[3];
 void mergesort(int low,int high);
 int merge(int low ,int high,int mid);
int main()
{
   
    for(int i=0;i<3;i++)
    {
      cin>>a[i];
       
    }
    for( i=0;i<3;i++)
    {
            mergesort(i,2);
       
        cout<    }    
       
    getchar();
    getchar();
    getchar();
    return 0;
}    
   
    void mergesort(int low,int high)
    {
        int mid=(low+high)/2;
        mergesort(low,mid);
        mergesort(mid+1,high);
        merge(low,mid,high);
    }
    int merge(int low ,int high,int mid)
    {
       int h=low,i=low,j=mid+1,k;
       while((h<=mid)&&(j<=high))
       {
           if(a[h]<=a[j])
           {b[i]=a[h];h++;}
           else
           {b[i]=a[j];j++;}
           i++;
       }
       if(h>mid)
       for(k=j;k       {
           b[i]=a[k];
       i++;
   }
   else
   for(k=h;k<=mid;k++)
   {
   b[i]=a[k];
   i++;
}
for(k=low;ka[k]=b[k];
return a[i];
}


--------------------next---------------------

阅读(996) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~