请问下面的c语言程序是什么意思解释一下,每个句子的含义

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void Merge(int *R,int low,int m,int high)
{
int i=low,j=m+1,p=0;
int *R1;
R1=(int *)malloc((high-low+1)*sizeof(int));
if(!R1)
return;
while(i<=m&&j<=high)
R1[p++]=(R[i]<=R[j])?R[i++]:R[j++];
while(i<=m)
R1[p++]=R[i++];
while(j<=high)
R1[p++]=R[j++];
for(p=0,i=low;i<=high;p++,i++)
R[i]=R1[p];
}
void MergeSort(int R[],int low,int high)
{
int mid;
if(low<high)
{
mid=(low+high)/2;
MergeSort(R,low,mid);
MergeSort(R,mid+1,high);
Merge(R,low,mid,high);
}
}
int main(void)
{
int i;
int a[10];
int low=0,high=9;
srand( (unsigned int)time(NULL) );
for (i = 0; i < 10; i++)
{
a[i] = rand() % 100;
}
MergeSort(a,low,high);
for(i=low;i<=high;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//前面的头文件就不说了哈
void Merge(int *R,int low,int m,int high)
{//对指定的范围low 到 high内的数字进行一个排序合并操作
int i=low,j=m+1,p=0;
int *R1;
R1=(int *)malloc((high-low+1)*sizeof(int));//重新分配一个high-low+1长度的空间,以包含将合并排序的新内容
if(!R1)//如果分配不成功,就退出
return;
while(i<=m&&j<=high) //进行循环取值操作
R1[p++]=(R[i]<=R[j])?R[i++]:R[j++];//将R[i]<=R[j]的值进行比较取小的值,如果被取,将其位置向后移动一位,比如:i = 2;j = 6;R[i]<=R[j]为真,就取R[i]赋给R1[p],如果将 p = p + 1; i = i + 1(如果为假,就是j = j + 1;);
while(i<=m) //如果low 到 m这段的数据没有取完,就将low 到 m这段剩下的部分依次全部赋给到R1后面
R1[p++]=R[i++];
while(j<=high) //如果是 m + 1 到high这一段没有取完,就将m + 1 到high这段剩下的部分依次全部赋给到R1后面
R1[p++]=R[j++];
for(p=0,i=low;i<=high;p++,i++)//将R1中的内容复制到R[low]到R[high]段
R[i]=R1[p];
}
void MergeSort(int R[],int low,int high)
{//功能:合并排序
int mid;
if(low<high)
{//此处使用了递归调用
mid=(low+high)/2;//得到中间位置
MergeSort(R,low,mid);//排列前一段
MergeSort(R,mid+1,high);//排列后一段
Merge(R,low,mid,high);//将low 到 high 段进行合并
}
}
int main(void)
{
int i;
int a[10];//定义一个10个成员的数组
int low=0,high=9;//定义其最开始和最后面
srand( (unsigned int)time(NULL) );//使用一个时间作为随机数种子
for (i = 0; i < 10; i++)
{
a[i] = rand() % 100;//取得一个随机数并取其十进制的低两位
}
MergeSort(a,low,high);//进行合并排序
for(i=low;i<=high;i++)
printf("%d ",a[i]);//将排序后的数据输出
printf("\n");//打印一个换行符号以换行显示其他
return 0;//返回
}
温馨提示:答案为网友推荐,仅供参考
相似回答