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 (j = i-1; a [j]> x; j--) dar, în momentul conectării de eroare:
pentru (i = 1; i
o [j + 1] = a [j];
pentru (j = 1; j
Simbolul _main nedefinită în modulul s0.ASM