Sortați matrice în ordine crescătoare

k-1 elemente sunt dispuse o [0]<= a[1] <=. <= a[k-1]
Comparați un [K-1] și [k].
Dacă un [k-1] <= a[k], то ничего делать не надо.
Dacă un [k-1]> a [k], apoi le schimba.
acum
o [0]<= a[1] <=. <= a[k-2] и a[k-1] <= a[k],
comanda poate fi spart doar între un [k-2] și [k-1].






Comparați o [k-2] și [k-1].
Dacă un [k-2] <= a[k-1], то все k элементов упорядочены.
Dacă un [k-2]> a [k-1], apoi le schimba.
acum
o [0]<= a[1] <=. <= a[k-3] и a[k-2] <= a[k-1] <= a[k],






Comparați o [k-3] și [k-2].
.

// introduce elementul a [k] între [0]<= a[1] <=. <= a[k-1]
// pentru a obține o secvență ordonată de elemente k
pentru (i = k; i> = 1; Eu--)
dacă (a [i-1]> a)
// interschimba a [i-1] și
>
altfel
pauză;
>

#include
#include

șablon
inline void insertSortGuarded (T o [], dimensiune lungă) T x;
i lung, j;
T de rezervă = a [0];


pentru (i = 1; i

pentru (j = i-1; a [j]> x; j--)
o [j + 1] = a [j];


pentru (j = 1; j o [j-1] = a [j];

dar, în momentul conectării de eroare:
Simbolul _main nedefinită în modulul s0.ASM