Prezentarea privind metodele de sortare o matrice

Sortarea matrice 1 Metode

Prezentarea privind metodele de sortare o matrice

2 sortarea sau ordonarea de matrice se numește amplasarea elementelor sale în ascendent (sau descendent). În cazul în care nu toate elementele sunt diferite, vorbim de non-descrescătoare (sau non-crescătoare) ordine. definiție

Prezentarea privind metodele de sortare o matrice







3 „Chiar dacă sortarea a fost aproape inutil, am putea găsi multe motive pentru a face acest lucru! Metode inventive de sortare spun că, în sine, este interesant ca obiect de studiu.“ / A. Whip / „Se pare că vă puteți construi un curs de programare întreg, alegând doar exemple de un fel de probleme.“ / H. Wirth / Citate de oameni mari

Prezentarea privind metodele de sortare o matrice

4 1. Sortarea inserție (comutare); 2. Sortarea select (evidențiați); 3. sortare de schimb ( "bubble" sortare). Sortarea Metode matrice

Prezentarea privind metodele de sortare o matrice

5 Metoda de sortare Selectare Principiu: Găsiți (selectați) în elementul de matrice cu valoarea minimă în intervalul de la 1 la punctul n-lea element (ultima) și schimbarea locul său cu primul element. Într-o a doua etapă vom găsi elementul cu valoarea minimă în intervalul de la data de 2 la elementul n-lea și schimbarea locul cu al doilea element. Și așa mai departe pentru toate elementele de până la (n-1) -lea.

Prezentarea privind metodele de sortare o matrice

6 var a: array [1..6] din întreg; i, j, Min, MiNi: integer; Încep pentru i: = 1 până la 6 se începe a scrie ( 'o [' i, '] ='); readln (a [i]); se încheie; pentru i: = 1 până la 6 se începe Min: = a [i]; MiNi: = i; pentru j: = i + 1 la 6 face dacă un [j]

Prezentarea privind metodele de sortare o matrice

7 Sortează după inserarea metodei Principiu: Matricea este împărțită în două părți: sortate și nesortate. Elementele componente neordonate sunt alternativ selectate și inserate în porțiunea de sortat, astfel încât să nu perturbe ordinea elementelor în ea. La începutul algoritmului, ca parte a șirului sortat va accepta numai primul element, și nesortat - toate elementele rămase.

Prezentarea privind metodele de sortare o matrice






8 Algoritmul: Algoritmul va consta din (n-1) pass -lea (n - dimensiunea de matrice), fiecare dintre acestea ar include patru etape: 1) luând următorul element i-lea nu este sortat și stocarea acestuia într-o variabilă suplimentară; 2) caută poziția j în porțiunea array sortat, în care prezența elementului unic nu va încălca ordonarea elementelor; 3) elementele de deplasare ale șirului de la i-lea până la j-1-lea la dreapta pentru a elibera poziția de inserție găsită; 4) inserarea singur element găsit în poziția i-lea.

Prezentarea privind metodele de sortare o matrice

o [j]) do Inc (j); pentru g: = i-1 downto j face o [g + 1]: = a [g]; o [j]: = e; se încheie; pentru i: = 1 până la 6 do "title =" Var i, j, e, g: întreg; a: array [1..6] din întreg; Încep pentru i: = 1 până la 6 se începe a scrie ( 'o [' i, '] ='); readln (a [i]); se încheie; pentru i: = 2 până la 6 se începe e: = A [i]; j: = 1; în timp ce (e> o [j]) do Inc (j); pentru g: = i-1 downto j face o [g + 1]: = a [g]; o [j]: = e; se încheie; pentru i: = 1 până la 6 do "class =" link_thumb „> 9 Var i, j, e, g: integer; a: array [1..6] integer; Begin pentru i: = 1 până la 6 nu înceapă scrie ( 'o [' i, '] ='); readln (a [i]) final; pentru i: = 2 până la 6 se începe e: = a [i]; j: = 1, în timp ce (e> o [j]) do Inc (j) pentru g: = i-1 downto j face o [g + 1]: = a [g]; o [j]: = e; sfârșit, pentru i: = 1 6 do write (a [i], ''); End Filtru matrice în ordine crescătoare (metoda pasta) a [j]) do Inc (j) pentru g: .. = i-1 downto j face o [g + 1]: = a [g]; o [j]: = e; sfârșit, pentru i: = 1 până la 6 do „> a [j]) do Inc (j); pentru g: = i-1 downto j face o [g + 1]: = a [g]; o [j]: = e; se încheie; pentru i: = 1 până la 6 do write (a [i], ''); Sfârșit. matrice de filtrare în ordine crescătoare (metoda de pastă) „> a [j]) do Inc (j) pentru g :. = I-1 downto j face o [g + 1]: = a [g]; o [j] : = e; sfârșit, pentru i: = 1 până la 6 do "title =" Var i, j, e, g: integer; a: array [1..6] integer; Begin pentru i: = 1 până la 6 do începe a scrie ( 'o [' i, '] ='); readln (a [i]) final; pentru i: = 2 până la 6 se începe e: = a [i]; j: = 1, în timp ce ( e> o [j]) do Inc (j) pentru g: = i-1 downto j face o [g + 1]: = a [g]; o [j]: = e; sfârșit, pentru i: = 1 la 6 do „> a [j]) do Inc (j); pentru g: = i-1 downto j face o [g + 1]: = a [g]; o [j]: = e; se încheie; pentru i: = 1 până la 6 do "title =" Var i, j, e, g: întreg; a: array [1..6] din întreg; Încep pentru i: = 1 până la 6 se începe a scrie ( 'o [' i, '] ='); readln (a [i]); se încheie; pentru i: = 2 până la 6 se începe e: = A [i]; j: = 1; în timp ce (e> o [j]) do Inc (j); pentru g: = i-1 downto j face o [g + 1]: = a [g]; o [j]: = e; se încheie; pentru i: = 1 până la 6 do „>

10 Metoda de sortare cu bule ascendent brichetă (valoare mai mică), treptat, elemente „float“, la începutul matrice, iar cea mai grea altă chiuveta la fundul (sfârșitul șirului). Sortează după principiul „bula“ a metodei:

Elementele 11 sunt comparate în perechi cu celălalt: primul cu al doilea, apoi al doilea la al treilea, urmat de al treilea la al patrulea etc. În cazul în care elementul precedent este mai mare decât ulterior, prin schimbul lor. Treptat, cel mai mare număr este cea mai recentă. algoritm:

o [j + 1], apoi începe k: = a [j]; o [j]: = a [j + 1]; o [j + 1]: = capăt k; pentru i: = 1 până la 6 do scrie "title =" var a: array [1..6] integer; i, j, k: integer; începe pentru i: = 1 până la 6 se începe a scrie ( 'o [' i, '] ='); readln (a [i]); se încheie; pentru i: = 1 până la 5 pentru a face j: = 1 până la 5 face dacă un [j]> a [j + 1], apoi începe k: = a [j]; o [j]: = a [j + 1]; o [j + 1]: = capăt k; pentru i: = 1 la 6 se scrie "class =" link_thumb „> 12 var a: array [1..6] integer; i, j, k: integer; începe pentru i: = 1 până la 6 se începe scriere ( 'o [' i, '] ='); readln (a [i]) final; pentru i: = 1 până la 5 face pentru j: = 1 până la 5 face dacă un [j]> a [j + 1 ] apoi începe k: = a [j]; o [j]: = a [j + 1]; o [j ​​+ 1]: = capăt k; pentru i: = 1 până la 6 do write (a [i], . '') final de filtrare matrice în ordine crescătoare ( "bubble" metoda) a [j + 1], apoi începe k: = a [j]; o [j]: = a [j + 1]; o [j ​​+ 1]: = capăt k; pentru i: = 1 până la 6 nu scrie „> a [j + 1], apoi începe k: = a [j]; o [j]: = a [j + 1]; o [j + 1]: = capăt k; pentru i: = 1 până la 6 do write (a [i], ''); end. Filtru de matrice în ordine crescătoare ( "bubble" metoda) „> a [j + 1], apoi începe k: = a [j]; o [j]: = a [j + 1]; o [j ​​+ 1]: = k final; pentru i: = 1 la 6 se scrie "title =" var a: array [1..6] integer; i, j, k: integer; începe pentru i: = 1 până la 6 se începe scriere ( ' o [ 'i,'] = „); readln (a [i]) final; pentru i: = 1 până la 5 face pentru j: = 1 până la 5 face dacă un [j]> a [j + 1] apoi începe k: = a [j]; o [j]: = a [j + 1]; o [j ​​+ 1]: = capăt k; pentru i: = 1 până la 6 nu scrie „> a [j + 1 ] apoi începe k: = a [j]; o [j]: = a [j + 1]; o [j + 1]: = capăt k; pentru i: = 1 până la 6 do scrie "title =" var a: array [1..6] integer; i, j, k: integer; începe pentru i: = 1 până la 6 se începe a scrie ( 'o [' i, '] ='); readln (a [i]); se încheie; pentru i: = 1 până la 5 pentru a face j: = 1 până la 5 face dacă un [j]> a [j + 1], apoi începe k: = a [j]; o [j]: = a [j + 1]; o [j + 1]: = capăt k; pentru i: = 1 la 6 se scrie „>