admin 发表于 2015-7-16 21:33

归并排序算法

归并排序指的是将两个已经排好序的序列合并成一个序列的操作 ,具体原理如下:

1,将序列每相邻两个数字进行归并操作,形成floor(n/2)个序列,排序后每个序列包含两个元素。
      2,将上述序列再次归并,形成floor(n/4)个序列,每个序列包含4个元素。
      3,重复步骤2 直至完成。

public static void Merge(int[] temp,int left,int mid,int right)
{
inti,left_end,num_elements,tmp_pos;
left_end=mid-1;
tmp_pos=left;
num_elements=right-left+1;
while((left<=left_end)&&(mid<=right))
   {
    if(myArray<=myArray)
    {
      temp=myArray;
      tmp_pos=tmp_pos+1;
      left=left+1;
    }
    else
    {
      temp=myArray;
      tmp_pos=tmp_pos+1;
      mid=mid+1;
   }

   }
   while(left<=left_end)
{
    temp=myArray;
    left=left+1;
    tmp_pos=tmp_pos+1;
   }
   while(mid<=right)
   {
    temp=myArray;
    mid=mid+1;
    tmp_pos=tmp_pos+1;
   }
   for(i=0;i<num_elements;i++)
   {
    myArray=temp;
    right=right-1;
   }

}

页: [1]
查看完整版本: 归并排序算法