The content of the discussion is not explained, only the corresponding program is provided.
2.1: Merge Insert sort θ (NLGN)
voidMergeinsertionsort (intA[],intLintRintk) { intm; if(r-l+1>k) {m= (L + r)/2; Mergeinsertionsort (A, L, M, K); Mergeinsertionsort (A, M+1, R, K); Merge (A, L, M, R); } Else if(L <R) Insertsort (A, L, r);}voidInsertsort (intA[],intLintR) { intI, J, key; J=l; for(i=l+1; i<=r; i++) if(A[i] < a[j]) J =i; if(J >l) {key=A[j]; A[J]=A[l]; A[L]=key; } for(i=l+2; i<=r; i++) {Key=A[i]; for(j=i-1; key<a[j]; j--) a[j+1] =A[j]; A[j+1] =key; }}voidMergeintA[],intLintMintR) { intI, j, K; intN1 = M-l +1; intN2 = R-m; intlarray[n1+1], rarray[n2+1]; intMax = +; for(i=0; i<n1; i++) Larray[i] = a[l+i]; for(i=0; i<n2; i++) Rarray[i] = a[m+i+1]; LARRAY[N1]=Max; RARRAY[N2]=Max; I=0; J=0; for(k=l; k<=r; k++) { if(Larray[i] <=Rarray[j]) {A[k]=Larray[i]; ++i; } Else{A[k]=Rarray[j]; ++J; } }}
View Code
2.2: Bubble sort
voidBubblesort (intA[],intN) { intI, J, TMP; for(i=0; i<n-1; i++) for(j=n-1; j>i; j--) if(A[j] < a[j-1]) {tmp=A[j]; A[J]= a[j-1]; A[j-1] =tmp; }}
View Code
2.3: Polynomial calculation method (θ (n))
intHornerintA[],intXintN) { intI, sum=a[n-1]; for(i=n-2; i>=0; i--) sum = a[i] + x *sum; returnsum;}intPolynominal (intA[],intXintN) { intI, Xarray[n], sum=0; xarray[0] =1; for(i=1; i<n; i++) Xarray[i] = x * xarray[i-1]; for(i=0; i<n; i++) sum = sum + a[i] *Xarray[i]; returnsum;}
View Code
2.4: Calculating the inverse θ of the series (NLGN)
intMergecount (intA[],intLintR) { intm; if(L <r) {m= (L + r)/2; returnMergecount (A, L, m) + Mergecount (A, m+1, R) +merge (A, L, M, R); } return 0;}intMergeintA[],intLintMintR) { intI, J, K, cnt=0; intN1 = M-l +1; intN2 = R-m; intlarray[n1+1], rarray[n2+1]; intMax =10000; for(i=0; i<n1; i++) Larray[i] = a[l+i]; for(j=0; j<n2; J + +) Rarray[j] = a[m+1+J]; LARRAY[N1]=Max; RARRAY[N2]=Max; I=0; J=0; for(k=l; k<=r; k++) if(Larray[i] <=Rarray[j]) {A[k]=Larray[i]; ++i; } Else{A[k]=Rarray[j]; CNT+ = (m + j-k +1); ++J; } returnCNT;}
View Code
Introduction to Algorithms (third edition) Problems2 (merge insert sort, inverse sequence calculation)