Jednoduché algoritmy řazení JavaScriptu

Obsah

Algoritmus je podle definice uspořádanou sadou (Toto je velmi důležité) systematických operací, které nám umožňují provést výpočet pro nalezení řešení všech problémů stejného typu. Jinými slovy, je to soubor pokynů, které vždy dodržují následující vzorec:

  • Přesnost: Každý krok nebo pokyn musíte jednoznačně a jednoznačně vysvětlit.
  • Konečný: Počet pokynů k provedení musí být omezen.
  • Definice: Stejná vstupní data musí vždy poskytovat stejné výstupní informace.
  • Vstup: Počet vstupních prvků může být nula nebo více.
  • Řešení: Vždy by to mělo přinést výsledek, kterým budou výstupní data.

Když je algoritmus implementován v určitém programovacím jazyce, stane se programem, který lze spustit na počítači, a proto můžeme říci, že program je algoritmus nebo sada algoritmů napsaných v konkrétním jazyce, který může počítač použít. V tomto případě se tento program nazývá výpočetní algoritmus. Na druhou stranu, pokud ke svému provozu nepotřebuje počítač, mluvíme o nepočítačových algoritmech.

V našem případě budeme mluvit o výpočetní algoritmy.

Víme, co je to algoritmus, zaměříme se na třídící algoritmy, nebo co je stejné, na algoritmus, který slouží k třídění a vracení seznamu, který byl původně vybaven náhodně umístěnými prvky, které již byly objednány.
The 3 třídicí algoritmy nejznámější jsou Řazení podle bublin nebo řazení podle bublin, řazení podle výběru nebo řazení podle výběru a řazení podle vložení nebo řazení podle vložení. Všechny jsou považovány za jednoduché algoritmy nebo metody, protože jsou řešeny iterací nebo opakováním až několikrát.

1. Řazení podle bublin nebo řazení podle bublinVezmeme -li jako příklad pole se čtyřmi hodnotami, v tomto případě pro jednoduchost čtyři čísla uvidíme, jak algoritmus funguje.

Pole = (4, 7, 8, 5, 9);

Chceme, abyste jej například vrátili seřazený od nejvyšší po nejnižší, tj. (9, 8, 7, 5, 4).

Abychom to mohli udělat, první věcí, kterou musíme udělat, je zeptat se na první dvě hodnoty, které jsou největší. V případě, že je druhá hodnota větší než první, je třeba je vyměnit, na druhou stranu, pokud jsou již objednány, necháme je tak, jak jsou.
Pak by se stejný postup musel opakovat s druhou a třetí hodnotou. V tomto případě je třetí hodnota větší, takže bychom ji vyměnili, takže naše pole = (7, 8, 4, 5, 9).
Poté zopakujeme předchozí krok se třetí a čtvrtou hodnotou a opět je vyměníme. (7, 8, 5, 4, 9).
A nakonec po první iteraci to bude: (7, 8, 5, 9, 4).
Stále není uspořádán, ale bylo dosaženo toho, že poslední prvek, ten napravo od celku, 4, pokud je seřazen jako nejmenší počet ze všech.
V dalším kole k objednání našeho pole již není nutné brát v úvahu poslední, protože již víme, že je uspořádáno, takže bychom porovnali první a druhý prvek, pak druhý a třetí prvek a nakonec třetí a čtvrtý prvek a pole zůstanou: (8, 7, 9, 5, 4).
Nyní jsou roztříděny poslední a předposlední prvek.
Provedeme další kolo porovnáním první a druhé hodnoty a poté druhé a třetí a pole vypadá takto: (8, 9, 7, 5, 4).
Poslední tři prvky jsou již seřazené, takže stačí pouze jedno otočení, aby bylo pole zcela seřazeno: (9, 8, 7, 5, 4).

Takto se burburja algoritmus, které se tak říká, protože v každém kole poslední prvek stoupá jako bublina a je uspořádán.

Nyní implementováno do JavaScript Je to velmi jednoduché:

funkční bublina (myArray) {var tam = myArray.length; for (var temp = 1; temp <size; temp ++) {for (var left = 0; left <(size - temp); left ++) {var right = left +1; if (myArray [left] <myArray [right] {sort (myArray, left, right);}}} return myArray;}
Předáme matici naší funkci a v rámci ní první věc, kterou uděláme, je vypočítat její velikost, vypočítat počet prvků v poli.
Poté vytvoříme vnější smyčku, která projde naším polem tolikrát, kolik prvků má minus jednu (protože to jsou časy nutné k úplnému objednání).
Interně vytvoříme další smyčku, která prochází hodnotami porovnávajícími každou s další, a pokud je ta vlevo menší než ta vpravo, vymění je za funkci řazení, kterou uvidíme dále.
Nakonec vrátí seřazené pole.
třídění funkcí (myArray, hodnota1, hodnota2) {var temp = myArray [hodnota1]; myArray [hodnota1] = myArray [hodnota2]; myArray [hodnota2] = temp; vrátit myArray;}
kde hodnota1 je index první položky k výměně a hodnota2 je index druhé položky k výměně.

2. Výběrové řazeníAlgoritmus, který uvidíme níže, nepohybuje prvky jeden po druhém jako v bublině, ale nejprve prochází celým polem a poté vybere správný prvek pro umístění podle kritérií, která dodržujeme (například z nejvyšší na nejnižší) a umístí jej přímo na své místo, a takto algoritmus získá své jméno, vybere, vezme prvek a přesune jej jediným pohybem do správné polohy.

Ve stejném příkladu jako dříve Array = (4, 7, 8, 5, 9), pokud jej chceme například objednat od nejvyšší po nejnižší, nejprve bychom vybrali 9 a dali ho na první místo a 4 by obsadilo poslední pozici (9, 7, 8, 5, 4). Ve druhém kole vybral 8 a vyměnil je za 7, aby zůstal ve správné poloze. V následujících kolech bych nic neupravoval, protože již bylo objednáno.

Kód tohoto algoritmu by byl následující:

výběr funkce (myArray) {var tam = myArray.length; for (var temp = 0; temp <size -1; temp ++) {major = temp; for (var check = temp +1; check <size; check ++) {if (myArray [check] <myArray [major] {major = check;}} sort (myArray, major, check);} return myArray;}

Kód funguje podobně jako bublina, ale vnější smyčka pro prochází hodnotami od 0 do N-2 (jedná se o stejný počet kroků jako mezi 1 a N-1 jako v bublině, ale operace je odlišná ) působící přímo na prvky, aby byly v každé zatáčce uvedeny do správné polohy.
Počet otáček nezbytných pro objednání všech prvků je stejný jako v bublině N-1, protože po každé iteraci ponecháme prvek umístěný na svém místě a ten, který můžeme v následujících otáčkách ignorovat.

Mírně však upravíme funkci řazení, abychom si ušetřili kroky, když zjistíme, že nějaký prvek je již objednán:

třídění funkcí (myArray, value1, value2) {if (value1 == value2) {return myArray; } var temp = myArray [hodnota1]; myArray [hodnota1] = myArray [hodnota2]; myArray [hodnota2] = temp; vrátit myArray;}
Abychom toho dosáhli, zahrnuli jsme smyčku if, ve které kontroluje, zda se hodnoty shodují, to znamená, zda jsou již objednány.

3. Vkládací tříděníNakonec uvidíme nejúčinnější algoritmus ze všech tří, protože nebudeme vždy potřebovat iterace N-1 k umístění našeho pole, jak uvidíme níže.

Tento algoritmus vkládání funguje podobně jako při rozdávání karet v pokerové hře při rozdávání karet.
Karty obvykle řadíme podle obleků a v jejich pořadí podle vzestupu takto:
Nejprve je rozdána karta, jeden prvek, který je uspořádán (za to, že je jedinečný). Když jsou tedy prvky „j“ seřazené od nejmenšího po největší, vezmeme prvek j + 1 a porovnáme jej se všemi prvky, které jsou již uspořádány. Pokud najde menší, protože větší se posunou doprava, vloží se tento prvek (j + 1) a přesune se do zbytku.

The vložit algoritmus přeloženo do Jazyk JavaScript je následující:

funkce insert (myArray) {var tam = myArray.length, temp, place; for (var obj = 0; obj = 0 && myArray [místo]> temp; místo--) {myArray [místo + 1] = myArray [místo]; } myArray [místo + 1] = teplota; } vrátit myArray;}

A tak tři jednoduché algoritmy řazení a kód při jeho implementaci v JavaScriptu.

Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave