以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 算法理论与分析 』  (http://bbs.xml.org.cn/list.asp?boardid=60)
----  合并排序算法  (http://bbs.xml.org.cn/dispbbs.asp?boardid=60&rootid=&id=87252)


--  作者:zry
--  发布时间:10/20/2010 7:53:00 PM

--  合并排序算法
//自己随课堂的小练习
//算法可能不是那么完美,如有不懂得地方或者完善的办法可以留言或邮件联系。
#define length 10
#include<iostream.h>
void Merge(int a[],int left,int right,int i)
{
 int x=0,y=0;
 int b[length];
 for(int z=0;z<=right-left;z++)
 {
 if(x>i-left)
 {
  while(y<=right-i-1)
  {
   b[x+y]=a[i+1+y];
   y++;
  }
   break;
 }
 if(y>right-i-1)
 {
  while(x<=i-left)
  {
   b[x+y]=a[left+x];
   x++;
  }
   break;
 }
 if(a[left+x]<=a[i+1+y])
  {
  b[z]=a[left+x];
  x++;
  }
 else
  {
  b[z]=a[i+1+y];
  y++;
  }
 }
 for(int c=0;c<=right-left;c++)
  a[left+c]=b[c];
}
void MergeSort(int a[],int left,int right)
{
 if(right-left<=1)
 {
  int m;
  if(a[right]<=a[left])
  {
   m=a[right];
   a[right]=a[left];
   a[left]=m;
  }
 }
 else
 {
  int i=(right+left)/2;
  MergeSort(a,left,i);
  MergeSort(a,i+1,right);
  Merge(a,left,right,i);

 }
}


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
54.688ms