标签:style blog color io strong for ar art div
描述
给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中两路合并排序算法进行排序,并输出排序最后结果的相应序列。
输入
共两行,第一行给出排序元素数目n,第二行给出n个元素,1≤n≤100000,每个元素值范围为 [0,100000]
输出
一行,输出排序结果。
样例输入
7
48 36 68 72 12 48 2
样例输出
2 12 36 48 48 68 72
#include<stdio.h> #include<malloc.h> #define MaxSize 100 void Merge(int source[],int start1,int end1,int start2,int end2) { int k=0; int i=start1; int j=start2; int m,n=0; int temp[100000]; while(i<=end1&&j<=end2) { if(source[i]<=source[j]) temp[k++]=source[i++]; else temp[k++]=source[j++]; } while(i<=end1) { temp[k++]=source[i++]; } while(j<=end2) { temp[k++]=source[j++]; } m=start1; for(;n<k;n++) { source[m++]=temp[n]; } } void MergeSort(int source[],int start,int end) { int mid; if(start<end) { mid=(start+end)/2; MergeSort(source,start,mid); MergeSort(source,mid+1,end); Merge(source,start,mid,mid+1,end); } } void main() { int n,i=0; int source[100000]; scanf("%d\n",&n); while(i<n) { scanf("%d",&source[i++]); } MergeSort(source,0,n-1); for(i=0;i<n-1;i++) { printf("%d ",source[i]); } printf("%d\n",source[n-1]); }
标签:style blog color io strong for ar art div
原文地址:http://www.cnblogs.com/rolly-yan/p/3935977.html