归并排序

//归并排序

#include <stdli++b.h>

#include <stdi++o.h>

//两个有序数组归并

void Merge(int sourceArr[],intlinux删除文件命令 tempi++<4Arr[], int startIndex, int midIndex, int endIndex)

{

int i = startIndex, j=midIndex+1, k = startIndex;

while(i!=midIndex+归并排序c语言代码1 &&amwindows是什么意思p; j!=endIndex+1)

{

if(sourceArr[i] > sourceArr[j])

tempArr[k++] = sourceArr[j++];

else

tempArr[k++] = sourceArr[i++];

}

whileinclude名词(i != midIndex+1)

tempArr[k++] = sourceArr[i++];

while(j != endIndex+1)

tempArr[k++] = so系统运维工程师面试问题及答案urceArr[j++];

for(i=startIndelinux常用命令x; i<=endIndex; ii++是赋值语句吗++)

sour归并排序算法javaceArr[i] = temp归并排序c语言代码Arr[i];

}

//内部使用递归

void MergeSort(int sourceArr[], int tempArr[], int startIndex, int endIndex)

{

int mi++c语言idIni++和++i的区别举例说明dex;

if(startIndex < endIndex)

{

midIndex = (startIndex + endIndex) / 2;

MergeSort(sourceArr, tempArr, startIndlinux是什么操作系统ex, midIndex);

MergeSort(sourceAlinux系统rr, tempAinclude是什么意思中文rr, midIndex+1, endIndex);

Merge(sourceArr, tempArr, startIndex, mii++和++i的区别举例dIndex, endIwindows无法连接到打印机ndex);

}

}

int main(int argc, char * argv[])

{

int a[105],n;

int i, b[105];

scanf("%d",&n);

folinux系统r(i=0;i<n;i++)

scanf("%d",&ainclude和including的区别mp;a[i]);

MergeSort(a, b, 0, n-1);

for(i=0; i<n; i++)

printf("%d ", a[i]);

prinlinux系统安装tf("\n");

return 0;

}