#include <iostream>#include<time.h>using namespacestd;voidMergeint*a,intPintQintR) { inti =0; intIndex1 =0; intIndex2 =0; intLength1 = Q-p +1; intLength2 = R-Q; int* arr1=New int[length1+1]; int* ARR2 =New int[length2+1]; for(i =0; i < length1; i++) {Arr1[i]= A[p-1+i]; } for(i =0; i < length2; i++) {Arr2[i]= A[q +i]; } Arr1[length1]= -; ARR2[LENGTH2]= -; for(I =p-1; i<=r-1; i++) { if(arr1[index1]<Arr2[index2]) {A[i]=ARR1[INDEX1]; Index1++; } Else{A[i]=Arr2[index2]; Index2++; } } Delete[] arr1; Delete[] arr2;}voidMerge_sort (intAintPintR) { intQ; if(p<r) {Q= (p + r)/2; Merge_sort (A, p, q); Merge_sort (A, Q+1, R); Merge (A, p, Q, R); }}intMain () {srand (unsignedint) time (NULL));//set the current time to seed intp[ -]; for(size_t i =0; I < -; i++) {P[i]= rand ()% -+1; } merge_sort (P,2, -); for(size_t i =1; I < -; i++) {cout<< P[i] <<"\ t"; } System ("Pause");}
A sorting algorithm for the introduction of algorithms and merge sorting in C + + implementation