Read some of the code written in introduction to algorithms and make a record.
# Include <iostream> # include <cmath> # include <vector> # define maxnumber 100000000;/* Introduction to algorithms Chapter 2-7 involves some algorithms: * Insert sorting + Merge Sorting + heap sorting + quick sorting * version1.0: 2013/04/27 * version2.0 objective: 1. add other sorting algorithms: Bubble Sorting + Count sorting * 2. add more types of support, not limited to STD: vector <int> * ------------------------------------------------------------------ * // -------------- Insert the Sorting Algorithm ------------------id Insertionsort (STD: vector <int> & A) {int Len =. size (); int I; for (Int J = 1; j <Len; ++ J) {int key = A [J]; I = J-1; while (I> = 0 & A [I]> key) {A [I + 1] = A [I]; -- I ;} A [I + 1] = Key ;}}; // ------------ merge and sort --------------------- void Merge (STD: vector <int> & A, int P, int Q, int R) {int n1 = Q-p + 1; int n2 = r-Q; STD: vector <int> L (N1 + 1); STD :: vector <int> r (n2 + 1); int I, j; for (I = 0; I <N1; ++ I) L [I] = A [p + I]; for (j = 0; j <N2; ++ J) R [J] = A [q + J + 1]; L [N1] = maxnumber; R [n2] = maxnumber; I = 0; j = 0; for (int K = P; k <= r; ++ K) {If (L [I] <= R [J]) {A [k] = L [I]; ++ I;} else {A [k] = R [J]; ++ J ;}}}; void mergesort (STD: vector <int> & A, int P, int R) {int Q; If (P <r) {q = (INT) floor (double (p + r)/2); mergesort (A, p, q); mergesort (A, q + 1, R); merge (A, P, q, R) ;}}; // ------------ heap sorting -------------------------- int left (int I) {return (2 * (I) + 1); // different from the book, c ++ starts from 0}; int right (Int I) {return (2 * (I) + 2) ;}; void maxheapify (STD: vector <int> & A, int I, int heap_size) {int L = left (I); int r = right (I); int largest; If (L