Algoritmul de sortare agitare (pr tremurul de sortare, bule bidirecțională sortare)

Acest algoritm de sortare - sortare cu bule de dezvoltare. Diferențele față de aceasta constă în faptul că, atunci când o parte din matrice, se verifică dacă permutarea au fost. În cazul în care nu au fost, atunci, această parte a șirului deja comandat și este exclus de la prelucrarea ulterioară. În plus, când se trece o matrice de la început până la sfârșit, elementele minime sunt mutate la început, iar elementul maxim este deplasată la capătul șirului.

Mecanismul ascendent algoritmului de sortare următor:

- începutul selectat și sfârșitul intervalului matrice. În care capătul șirului este una mai puțin;

- comparație secvențială se realizează și de înlocuire care produce o valoare mai mare, la sfârșitul șirului;

- Gama este redus de la capătul unității de procesare matrice;

- matrice de trecere succesive care produce o valoare mai mică la început;

- reducând intervalul de procesare matrice de la început la unitate.

Ciclul se încheie atunci când intervalul va converge în mijlocul matrice.

const
N = 10; // dimensiunea matrice
var
i, mic, mare, h. integer;
mas. array [1..n] de Integer;
începe
scăzute: = 1; // începutul și sfârșitul șirului
ridicat: = N - 1;

în timp ce mas joase [i + 1] începe apoi // Elemente de înlocuire locuri
h: = mas [i];
mas [i]: = mas [i + 1];
mas [i + 1]: = h;
se încheie;

ridicat: = ridicat - 1; // sortate interval de reducere de la sfârșitul

pentru i: = de mare downto do // matrice care se extinde de la capăt la început, se deplasează o valoare mai mică
dacă mas [i]> mas [i + 1] începe apoi locuri // Elemente de înlocuire
h: = mas [i];
mas [i]: = mas [i + 1];
mas [i + 1]: = h;
se încheie;

scăzut: = mic + 1; // reduceri sortate variază de la început
se încheie;
se încheie;

Un alt material din această secțiune