Quick sorting and quick sorting algorithms
# Include <stdio. h ># include <algorithm> using namespace std; void InsertionSort (int a [], int N) {int j, p, tmp; for (p = 1; p <N; p ++) {// 1-N-1 # target tmp = a [p]; for (j = p; j> 0 & a [J-1]> tmp; j --) {a [j] = a [J-1];} a [j] = tmp ;}} int median3 (int a [], int left, int right) {int mid = (left + right)/2; if (a [left]> a [mid]) swap (a [left], a [mid]); if (a [left]> a [right]) swap (a [left], a [right]); if (a [mid]> a [right]) swap (a [mid], a [right]); swap (a [mid], a [right-1]); return a [right-1];} const int cutoff = 3; void Qsort (int a [], int left, int right) {int weight, I, j; // left small right if (left + cutoff <= right) {// three values: Medium = median3 (a, left, right); I = left; j = right-1; // split for (;) {while (a [++ I] <strong) {}while (a [-- j]> trim) {} if (I <j) swap (a [I], a [j]); elsebreak;} // returns the swap (a [I], a [right-1]); Qsort (a, left, I-1); Qsort (a, I + 1, right);} elseInsertionSort (a + left, right-left + 1);} void main () {int a [13] = {13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; Qsort (, 0, 12); return ;}