Bemutatása a módszerek válogatás egy tömb
Szelektálás tömb 1 Módszerek
2 válogatás vagy rendelési a tömb nevezik a helyet annak elemek növekvő (vagy csökkenő). Ha nem minden eleme különböző, beszélünk, nem csökken (vagy nem növekvő) sorrendben. meghatározás
3. „Még ha a rendezési szinte használhatatlan, találnánk sok oka, hogy csináld! Találékony módszerekkel válogató azt mondják, hogy önmagában is érdekes, mint egy tárgy a tanulmány.” / A. Whip / „Úgy tűnik, hogy meg lehet építeni egy egész programozási természetesen választja csak példák a fajta probléma.” / H. Wirth / Idézetek nagy emberek
4 1. Szelektálás betét (kapcsolási); 2. A válogatás válogatott (highlight); 3. válogatás csere ( "buborék" sort). Szelektálás array módszerek
5 Selection Küld módszer elve: Find (kiválasztás) a tömb eleme a legkisebb érték közötti tartományban 1 pont n-edik (utolsó) elem és a változó helyére az első elemet. A második lépésben találunk az elem a legkisebb érték közötti tartományban, a 2. és az n-edik elemet és a változó helyére a második elem. És így tovább az összes elem legfeljebb (n-1) -edik.
6 var egy: array [1..6] egész szám; i, j, Min, mini: integer; I elkezdődik i: = 1-től 6 do kezdeni write ( 'a [', i, '] ='); readln (a [i]); végén; i: = 1-től 6 do kezdeni Min: = a [i]; Mini: = i; j: = i + 1-től 6 teendő, ha egy [j]
7 rendezése beiktatásával módszer elve: A tömböt két részre oszlik: szortírozott és nem szortírozott. Elemei szelektálatlan részek váltakozva kiválasztva, és beiktatjuk a rendezett része, hogy ne zavarja a sorrendben elemek benne. Az elején az algoritmus részeként rendezett tömbben csak akkor fogadja el az első elemet, és szétválogatott - az összes többi elemet.
8 Algoritmus: Az algoritmus áll (n-1) -edik lépésben (n - dimenziója a tömb), amelyek mindegyike magában négy lépésből áll: 1) figyelembe a következő i-edik eleme nincs rendezve, és tárolja azt egy kiegészítő változó; 2) keresni a J helyzet a rendezett tömbben része, amelyben a jelenlétében egyetlen elem nem sérti a elemek rendezését; 3) a sebességváltó elemeit a tömb a i-edik j-1-edik, hogy a jogot, hogy engedje a talált beillesztési helyzetben; 4) behelyezése egyetlen elem található i-edik pozícióban.
a [j]) do Inc (j); G: = i-1 downto j csinálni egy [g + 1]: = a [g]; a [J]: = E; végén; i: = 1-től 6 do "cím =" Var i, j, E, G: integer; egy: array [1..6] egész szám; I elkezdődik i: = 1-től 6 do kezdeni write ( 'a [', i, '] ='); readln (a [i]); végén; i: = 2 és 6 do kezdeni e: = A [i]; j: = 1; míg a (e> a [j]) do Inc (j); G: = i-1 downto j csinálni egy [g + 1]: = a [g]; a [J]: = E; végén; i: = 1-től 6 do "class =" link_thumb „> 9 Var i, j, E, G: integer; A: array [1..6] egész szám; elkezdődik i: = 1-től 6 do kezdeni írási ( 'a [', i, '] ='); readln (a [i]); end; i: = 2 és 6 do kezdeni e: = a [i]; j: = 1, míg (e> a [j]) do Inc (j); g: = i-1 downto j csinálni egy [g + 1]: = a [g]; a [J]: = e; end; i: = 1 6 do write (a [i], ''); End Szűrés tömb növekvő sorrendbe (beillesztés módszerrel) egy [j]) do Inc (j); g: .. = i-1 downto j csinálni egy [g + 1]: = a [g]; a [J]: = e; end; i: = 1-től 6 do „> a [j]) do Inc (j); G: = i-1 downto j csinálni egy [g + 1]: = a [g]; a [J]: = E; végén; i: = 1-től 6 do write (a [i], ''); Vége. Szűrés tömb növekvő sorrendbe (beillesztés módszerrel) „> a [j]) do Inc (j); G :. = I-1 downto j csinálni egy [g + 1]: = a [g]; a [j] : = e; end; i: = 1-től 6 do "cím =" Var i, j, e, g: integer; a: array [1..6] egész szám; elkezdődik i: = 1-től 6 do kezdenek write ( 'a [', i, '] ='); readln (a [i]); end; i: = 2 és 6 do kezdeni e: = a [i]; j: = 1, míg ( e> a [j]) do Inc (j); g: = i-1 downto j csinálni egy [g + 1]: = a [g]; a [J]: = e; end; i: = 1-től 6 do „> a [j]) do Inc (j); G: = i-1 downto j csinálni egy [g + 1]: = a [g]; a [J]: = E; végén; i: = 1-től 6 do "cím =" Var i, j, E, G: integer; egy: array [1..6] egész szám; I elkezdődik i: = 1-től 6 do kezdeni write ( 'a [', i, '] ='); readln (a [i]); végén; i: = 2 és 6 do kezdeni e: = A [i]; j: = 1; míg a (e> a [j]) do Inc (j); G: = i-1 downto j csinálni egy [g + 1]: = a [g]; a [J]: = E; végén; i: = 1-től 6 do „>
10 A módszer a válogató buborék emelkedő könnyebb (kisebb érték) fokozatosan elemek „lebegnek” az elején a tömb, és a nehezebb egymással aljára süllyednek (végén a tömb). Rendezés „buborék” módszer elvét:
Elements 11 összehasonlítjuk páronként egymással: az első a második, majd a második, hogy a harmadik, majd a harmadik, hogy a negyedik stb Ha az előző elem nagyobb, mint a későbbi, a csomópont. Fokozatosan, a legnagyobb szám a legújabb. algoritmus:
egy [j + 1] ezután kezdődik k: = a [j]; a [j]: = a [j + 1]; egy [j + 1]: = k végén; i: = 1-től 6 do levelet "cím =" var egy: array [1..6] A integer; i, j, k: integer; kezdődnek a i: = 1-től 6 do kezdeni write ( 'a [', i, '] ='); readln (a [i]); végén; i: = 1-től 5 do j: = 1-től 5 teendő, ha egy [j]> egy [j + 1] ezután kezdődik k: = a [j]; a [j]: = a [j + 1]; egy [j + 1]: = k végén; i: = 1-től 6 do írni "class =" link_thumb „> 12 var egy: array [1..6] A integer; i, j, k: integer; elkezdődik i: = 1-től 6 do kezdeni write ( 'egy [', i, '] ='); readln (a [i]); end; i: = 1-től 5 do j: = 1-től 5 teendő, ha egy [j]> egy [j + 1 ] ezután kezdődik k: = a [j]; a [j]: = a [j + 1]; a [j + 1]: = k végén; i: = 1-től 6 do write (a [i], . ''); end Szűrés tömb növekvő sorrendbe ( "buborék" módszer) a [j + 1] ezután kezdődik k: = a [j]; a [j]: = a [j + 1]; a [j + 1]: = k végén; i: = 1-től 6 do írni „> egy [j + 1] ezután kezdődik k: = a [j]; a [j]: = a [j + 1]; egy [j + 1]: = k végén; i: = 1-től 6 do write (a [i], ''); végén. Szűrés tömb növekvő sorrendbe ( "buborék" módszer) „> egy [j + 1] ezután kezdődik k: = a [j]; a [j]: = a [j + 1]; a [j + 1]: = k végén; i: = 1-től 6 do írni "cím =" var egy: array [1..6] a integer; i, j, k: integer; elkezdődik i: = 1-től 6 do kezdeni write ( ' egy [ 'i,'] = „); readln (a [i]); end; i: = 1-től 5 do j: = 1-től 5 teendő, ha egy [j]> egy [j + 1] ezután kezdődik k: = a [j]; a [j]: = a [j + 1]; a [j + 1]: = k végén; i: = 1-től 6 do írni „> egy [j + 1 ] ezután kezdődik k: = a [j]; a [j]: = a [j + 1]; egy [j + 1]: = k végén; i: = 1-től 6 do levelet "cím =" var egy: array [1..6] A integer; i, j, k: integer; kezdődnek a i: = 1-től 6 do kezdeni write ( 'a [', i, '] ='); readln (a [i]); végén; i: = 1-től 5 do j: = 1-től 5 teendő, ha egy [j]> egy [j + 1] ezután kezdődik k: = a [j]; a [j]: = a [j + 1]; egy [j + 1]: = k végén; i: = 1-től 6 do írni „>