logo

Čo je algoritmus | Úvod do algoritmov

Definícia algoritmu

Slovo Algoritmus znamená Súbor konečných pravidiel alebo pokynov, ktoré sa majú dodržiavať pri výpočtoch alebo iných operáciách na riešenie problémov
Alebo
Postup riešenia matematického problému v konečnom počte krokov, ktorý často zahŕňa rekurzívne operácie .

Algoritmus sa preto vzťahuje na postupnosť konečných krokov na vyriešenie konkrétneho problému.

vstup používateľa java
Čo je Algoritmus

Použitie algoritmov:

Algoritmy zohrávajú kľúčovú úlohu v rôznych oblastiach a majú mnoho aplikácií. Niektoré z kľúčových oblastí, kde sa používajú algoritmy, zahŕňajú:



  1. Počítačová veda: Algoritmy tvoria základ počítačového programovania a používajú sa na riešenie problémov od jednoduchého triedenia a vyhľadávania až po zložité úlohy, ako je umelá inteligencia a strojové učenie.
  2. matematika: Algoritmy sa používajú na riešenie matematických problémov, ako je hľadanie optimálneho riešenia sústavy lineárnych rovníc alebo hľadanie najkratšej cesty v grafe.
  3. Operačný výskum : Algoritmy sa používajú na optimalizáciu a rozhodovanie v oblastiach, ako je doprava, logistika a prideľovanie zdrojov.
  4. Umela inteligencia: Algoritmy sú základom umelej inteligencie a strojového učenia a používajú sa na vývoj inteligentných systémov, ktoré dokážu vykonávať úlohy, ako je rozpoznávanie obrázkov, spracovanie prirodzeného jazyka a rozhodovanie.
  5. Data Science: Algoritmy sa používajú na analýzu, spracovanie a extrahovanie poznatkov z veľkého množstva údajov v oblastiach, ako je marketing, financie a zdravotníctvo.

Toto je len niekoľko príkladov z mnohých aplikácií algoritmov. Používanie algoritmov sa neustále rozširuje, pretože sa objavujú nové technológie a oblasti, čo z nich robí dôležitú súčasť modernej spoločnosti.

Algoritmy môžu byť jednoduché a zložité v závislosti od toho, čo chcete dosiahnuť.

Dá sa to pochopiť na príklade varenia nového receptu. Na varenie nového receptu si prečítate pokyny a kroky a vykonáte ich jeden po druhom v danom poradí. Výsledkom je, že nové jedlo je dokonale uvarené. Zakaždým, keď používate telefón, počítač, laptop alebo kalkulačku, používate algoritmy. Podobne algoritmy pomáhajú pri programovaní, aby sa dosiahol očakávaný výstup.

Navrhnutý algoritmus je jazykovo nezávislý, t.j. sú to len obyčajné inštrukcie, ktoré možno implementovať v akomkoľvek jazyku, a napriek tomu bude výstup rovnaký, ako sa očakávalo.

Aká je potreba algoritmov?

  1. Algoritmy sú potrebné na efektívne a efektívne riešenie zložitých problémov.
  2. Pomáhajú automatizovať procesy a robia ich spoľahlivejšie, rýchlejšie a jednoduchšie.
  3. Algoritmy tiež umožňujú počítačom vykonávať úlohy, ktoré by pre človeka bolo ťažké alebo nemožné vykonať manuálne.
  4. Používajú sa v rôznych oblastiach, ako je matematika, informatika, inžinierstvo, financie a mnoho ďalších, na optimalizáciu procesov, analýzu údajov, predpovede a riešenia problémov.

Aké sú vlastnosti algoritmu?

Charakteristika algoritmu

Nakoľko by sa pri varení receptu neriadili žiadne písomné pokyny, ale iba ten štandardný. Podobne nie všetky písané inštrukcie pre programovanie sú algoritmy. Aby boli niektoré inštrukcie algoritmom, musia mať tieto vlastnosti:

  • Jasné a jednoznačné : Algoritmus by mal byť jednoznačný. Každý jeho krok by mal byť po všetkých stránkach jasný a musí smerovať len k jednému zmyslu.
  • Dobre definované vstupy : Ak algoritmus hovorí, že treba prijať vstupy, mali by to byť dobre definované vstupy. Môže alebo nemusí prijať vstup.
  • Dobre definované výstupy: Algoritmus musí jasne definovať, aký výstup bude mať, a mal by byť tiež dobre definovaný. Mal by produkovať aspoň 1 výstup.
  • Konečnosť: Algoritmus musí byť konečný, t.j. mal by skončiť po konečnom čase.
  • Uskutočniteľné: Algoritmus musí byť jednoduchý, všeobecný a praktický, aby ho bolo možné vykonať s dostupnými zdrojmi. Nesmie obsahovať žiadnu budúcu technológiu alebo čokoľvek iné.
  • Nezávislé na jazyku: Navrhnutý algoritmus musí byť jazykovo nezávislý, t.j. musí to byť len obyčajná inštrukcia, ktorú možno implementovať v akomkoľvek jazyku, a napriek tomu bude výstup rovnaký, ako sa očakávalo.
  • Vstup : Algoritmus má nula alebo viac vstupov. Každý, ktorý obsahuje základný operátor, musí akceptovať nula alebo viac vstupov.
  • Výkon : Algoritmus vytvára aspoň jeden výstup. Každá inštrukcia, ktorá obsahuje základný operátor, musí akceptovať nula alebo viac vstupov.
  • Jednoznačnosť: Všetky inštrukcie v algoritme musia byť jednoznačné, presné a ľahko interpretovateľné. Odkazom na ktorýkoľvek z pokynov v algoritme je možné jasne pochopiť, čo sa má urobiť. Každý základný operátor v inštrukcii musí byť definovaný bez akýchkoľvek nejasností.
  • konečnosť: Algoritmus musí skončiť po konečnom počte krokov vo všetkých testovacích prípadoch. Každá inštrukcia, ktorá obsahuje základný operátor, musí byť ukončená v konečnom čase. Nekonečné cykly alebo rekurzívne funkcie bez základných podmienok nemajú konečnosť.
  • Účinnosť: Algoritmus musí byť vyvinutý pomocou veľmi základných, jednoduchých a uskutočniteľných operácií, aby ho bolo možné vysledovať iba pomocou papiera a ceruzky.

Vlastnosti algoritmu:

  • Po určitom čase by sa to malo ukončiť.
  • Mal by produkovať aspoň jeden výstup.
  • Malo by to trvať nula alebo viac vstupov.
  • Malo by to byť deterministické prostriedky poskytujúce rovnaký výstup pre rovnaký prípad vstupu.
  • Každý krok v algoritme musí byť efektívny, t.j. každý krok by mal robiť nejakú prácu.

Typy algoritmov:

K dispozícii je niekoľko typov algoritmov. Niektoré dôležité algoritmy sú:

1. Algoritmus hrubej sily :

Je to najjednoduchší prístup k problému. Algoritmus hrubej sily je prvým prístupom k nájdeniu, keď vidíme problém.

2. Rekurzívny algoritmus :

Rekurzívny algoritmus je založený na rekurzia . V tomto prípade sa problém rozdelí na niekoľko podčastí a znova a znova sa volá tá istá funkcia.

3. Algoritmus spätného sledovania :

Algoritmus spätného sledovania vytvára riešenie hľadaním medzi všetkými možnými riešeniami. Pomocou tohto algoritmu pokračujeme v budovaní riešenia podľa kritérií. Vždy, keď riešenie zlyhá, sledujeme bod zlyhania a staviame na ďalšom riešení a pokračujeme v tomto procese, kým nenájdeme riešenie alebo sa nepostaráme o všetky možné riešenia.

4. Algoritmus vyhľadávania :

Vyhľadávacie algoritmy sú tie, ktoré sa používajú na vyhľadávanie prvkov alebo skupín prvkov z určitej dátovej štruktúry. Môžu byť rôznych typov na základe ich prístupu alebo dátovej štruktúry, v ktorej by sa mal prvok nachádzať.

5. Algoritmus triedenia :

Triedenie je usporiadanie skupiny údajov konkrétnym spôsobom podľa požiadavky. Algoritmy, ktoré pomáhajú pri vykonávaní tejto funkcie, sa nazývajú triediace algoritmy. Vo všeobecnosti sa triediace algoritmy používajú na triedenie skupín údajov rastúcim alebo klesajúcim spôsobom.

6. Hašovací algoritmus :

Hašovacie algoritmy fungujú podobne ako vyhľadávací algoritmus. Obsahujú však index s ID kľúča. Pri hashovaní je kľúč priradený ku konkrétnym údajom.

7. Algoritmus rozdeľuj a panuj :

Tento algoritmus rozdelí problém na podproblémy, vyrieši jeden podproblém a zlúči riešenia, aby sa získalo konečné riešenie. Pozostáva z nasledujúcich troch krokov:

  • Rozdeliť
  • Riešiť
  • Skombinujte

8. Chamtivý algoritmus :

V tomto type algoritmu je riešenie zostavené časť po časti. Riešenie pre ďalšiu časť je postavené na bezprostrednom prínose ďalšej časti. Jedno riešenie, ktoré poskytuje najväčší úžitok, sa vyberie ako riešenie pre ďalšiu časť.

9. Algoritmus dynamického programovania :

Tento algoritmus využíva koncept použitia už nájdeného riešenia, aby sa predišlo opakovanému výpočtu tej istej časti problému. Rozdeľuje problém na menšie prekrývajúce sa podproblémy a rieši ich.

10. Randomizovaný algoritmus :

V randomizovanom algoritme používame náhodné číslo, takže poskytuje okamžitý úžitok. Náhodné číslo pomáha pri rozhodovaní o očakávanom výsledku.

Viac informácií o typoch algoritmov nájdete v článku o Typy algoritmov .

Výhody algoritmov:

  • Je ľahké to pochopiť.
  • Algoritmus je postupná reprezentácia riešenia daného problému.
  • V algoritme je problém rozdelený na menšie časti alebo kroky, a preto je pre programátora jednoduchšie previesť ho na skutočný program.

Nevýhody algoritmov:

  • Napísanie algoritmu trvá dlho, takže je časovo náročné.
  • Pochopenie zložitej logiky pomocou algoritmov môže byť veľmi ťažké.
  • Príkazy vetvenia a slučky sa v algoritmoch ťažko zobrazujú (imp) .

Ako navrhnúť algoritmus?

Na napísanie algoritmu sú potrebné nasledujúce veci:

  1. The problém ktorý má byť vyriešený týmto algoritmom, t.j. jasná definícia problému.
  2. The obmedzenia problém treba zvážiť pri riešení problému.
  3. The vstup aby sa problém vyriešil.
  4. The výkon sa dá očakávať, keď sa problém vyrieši.
  5. The Riešenie tento problém je v rámci daných obmedzení.

Potom je algoritmus napísaný pomocou vyššie uvedených parametrov tak, aby vyriešil problém.

Príklad: Zvážte príklad na sčítanie troch čísel a vytlačenie súčtu.

Krok 1: Splnenie predpokladov

Ako je uvedené vyššie, na napísanie algoritmu musia byť splnené jeho predpoklady.

  1. Problém, ktorý má tento algoritmus vyriešiť : Pridajte 3 čísla a vytlačte ich súčet.
  2. Obmedzenia problému, ktoré je potrebné zvážiť pri riešení problému : Čísla musia obsahovať iba číslice a žiadne iné znaky.
  3. Vstup, ktorý sa má použiť na vyriešenie problému: Tri čísla, ktoré sa majú pridať.
  4. Výstup, ktorý sa očakáva po vyriešení problému: Súčet troch čísel prijatých ako vstup, t. j. jedno celé číslo.
  5. Riešenie tohto problému pri daných obmedzeniach: Riešenie spočíva v sčítaní 3 čísel. Dá sa to urobiť pomocou operátora „+“, alebo bitovo, alebo akoukoľvek inou metódou.


Krok 2: Návrh algoritmu

Teraz poďme navrhnúť algoritmus s pomocou vyššie uvedených predpokladov:

Algoritmus na sčítanie 3 čísel a vytlačenie ich súčtu:

  1. ŠTART
  2. Deklarujte 3 celočíselné premenné num1, num2 a num3.
  3. Vezmite tri čísla, ktoré sa majú pridať, ako vstupy do premenných num1, num2 a num3.
  4. Deklarujte súčet celočíselnej premennej na uloženie výsledného súčtu 3 čísel.
  5. Pridajte 3 čísla a výsledok uložte do premennej súčet.
  6. Vytlačte hodnotu súčtu premennej
  7. KONIEC


Krok 3: Testovanie algoritmu jeho implementáciou.

Aby sme otestovali algoritmus, implementujme ho v jazyku C.

Program:

C++ // C++ program to add three numbers // with the help of above designed // algorithm #include using namespace std; int main() { // Variables to take the input of // the 3 numbers int num1, num2, num3; // Variable to store the resultant sum int sum; // Take the 3 numbers as input cout << 'Enter the 1st number: '; cin>> číslo1; cout<< ' ' << num1 << endl; cout << 'Enter the 2nd number: '; cin>> číslo 2; cout<< ' ' << num2 << endl; cout << 'Enter the 3rd number: '; cin>> číslo 3; cout<< ' ' << num3; // Calculate the sum using + operator // and store it in variable sum sum = num1 + num2 + num3; // Print the sum cout << ' Sum of the 3 numbers is: ' << sum; return 0; } // This code is contributed by shivanisinghss2110>C // C program to add three numbers // with the help of above designed algorithm #include int main() { // Variables to take the input of the 3 numbers int num1, num2, num3; // Variable to store the resultant sum int sum; // Take the 3 numbers as input printf('Enter the 1st number: '); scanf('%d', &num1); printf('%d ', num1); printf('Enter the 2nd number: '); scanf('%d', &num2); printf('%d ', num2); printf('Enter the 3rd number: '); scanf('%d', &num3); printf('%d ', num3); // Calculate the sum using + operator // and store it in variable sum sum = num1 + num2 + num3; // Print the sum printf(' Sum of the 3 numbers is: %d', sum); return 0; }>Java // Java program to add the three numbers // with the help of above designed // algorithm import java.util.*; class GFG { public static void main(String[] args) { // Variable to store the resultant sum int sum = 0; // Declare the object and initialize with // predefined standard input object Scanner sc = new Scanner(System.in); // Scanner definition // Variables to take the input of // the 3 numbers System.out.println('Enter the 1st number: '); int num1 = sc.nextInt(); // input is an Integer // read by nextInt() function System.out.println(' ' + num1); System.out.println('Enter the 2nd number: '); int num2 = sc.nextInt(); System.out.println(' ' + num2); System.out.println('Enter the 3rd number: '); int num3 = sc.nextInt(); System.out.println(' ' + num3); // Calculate the sum using + operator // and store it in variable sum sum = num1 + num2 + num3; System.out.println('Sum of the 3 numbers is = ' + sum); } } /*This code is contributed by Rishab Dugar*/>Python # Python3 program to add three numbers # with the help of above designed # algorithm if __name__ == '__main__': # Variables to take the input of # the 3 numbers num1 = num2 = num3 = 0 # Variable to store the resultant sum sum = 0 # Take the 3 numbers as input num1 = int(input('Enter the 1st number: ')) num2 = int(input('Enter the 2nd number: ')) num3 = int(input('Enter the 3rd number: ')) # Calculate the sum using + operator # and store it in variable sum sum = num1 + num2 + num3 # Print the sum print(' Sum of the 3 numbers is:', sum)>C# // C# program to add the three numbers // with the help of above designed // algorithm using System; class GFG { static public void Main () { // Variable to store the resultant sum int sum = 0; // Variables to take the input of // the 3 numbers Console.Write('Enter the 1st number: '); int num1 = int.Parse(Console.ReadLine()); Console.WriteLine(' ' + num1); Console.Write('Enter the 2nd number: '); int num2 = int.Parse(Console.ReadLine()); Console.WriteLine(' ' + num2); Console.Write('Enter the 3rd number: '); int num3 = int.Parse(Console.ReadLine()); Console.WriteLine(' ' + num3); // Calculate the sum using + operator // and store it in variable sum sum = num1 + num2 + num3; Console.WriteLine('Sum of the 3 numbers is = ' + sum); } } /*This code is contributed by Pushpesh Raj*/>Javascript // Javascript program to add three numbers // with the help of above designed // algorithm // Variables to take the input of // the 3 numbers let num1 = 0, num2 = 0, num3 = 0; // Variable to store the resultant sum let sum = 0; // Take the 3 numbers as input console.log('Enter the 1st number: '); num1 = parseInt(prompt()); console.log(' ' + num1 + ' '); console.log('Enter the 2nd number: '); num2=parseInt(prompt()); console.log(' ' + num2 + ' '); console.log('Enter the 3rd number: '); num3=parseInt(prompt()); console.log(' ' + num3); // Calculate the sum using + operator // and store it in variable sum sum = num1 + num2 + num3; // Print the sum console.log(' Sum of the 3 numbers is: ' + sum); // This code is contributed by Aman Kumar>
Výkon

Zadajte 1. číslo: 0 Zadajte 2. číslo: 0 Zadajte 3. číslo: -1577141152 Súčet 3 čísel je: -1577141152

Tu je krok za krokom algoritmus kódu:

  1. Deklarujte tri premenné num1, num2 a num3 na uloženie troch čísel, ktoré sa majú pridať.
  2. Deklarujte premennú sumu na uloženie súčtu troch čísel.
  3. Pomocou príkazu cout požiadajte používateľa, aby zadal prvé číslo.
  4. Použite príkaz cin na prečítanie prvého čísla a jeho uloženie do num1.
  5. Pomocou príkazu cout požiadajte používateľa o zadanie druhého čísla.
  6. Použite príkaz cin na prečítanie druhého čísla a jeho uloženie do num2.
  7. Pomocou príkazu cout požiadajte používateľa, aby zadal tretie číslo.
  8. Použite príkaz cin na prečítanie a uloženie tretieho čísla v num3.
  9. Vypočítajte súčet troch čísel pomocou operátora + a uložte ho do premennej súčet.
  10. Pomocou príkazu cout vytlačte súčet troch čísel.
  11. Hlavná funkcia vracia 0, čo znamená úspešné vykonanie programu.

Časová zložitosť: O(1)
Pomocný priestor: O(1)

Jeden problém, veľa riešení: Riešením algoritmu môže alebo nemôže byť viac ako jedno. To znamená, že pri implementácii algoritmu môže existovať viac ako jedna metóda na jeho implementáciu. Napríklad vo vyššie uvedenom probléme sčítania 3 čísel možno súčet vypočítať mnohými spôsobmi:

  • + operátor
  • Bitové operátory
  • . . atď

Ako analyzovať algoritmus?

Aby bol štandardný algoritmus dobrý, musí byť efektívny. Preto je potrebné kontrolovať a udržiavať účinnosť algoritmu. Môže byť v dvoch fázach:

1. Priori analýza:

Priori znamená predtým. Priori analýza teda znamená kontrolu algoritmu pred jeho implementáciou. Pri tomto sa algoritmus kontroluje, keď je napísaný vo forme teoretických krokov. Táto účinnosť algoritmu sa meria za predpokladu, že všetky ostatné faktory, napríklad rýchlosť procesora, sú konštantné a nemajú žiadny vplyv na implementáciu. Zvyčajne to robí návrhár algoritmu. Táto analýza je nezávislá od typu hardvéru a jazyka kompilátora. Poskytuje približné odpovede na zložitosť programu.

2. Zadná analýza:

Posterior znamená po. Posteriorná analýza teda znamená kontrolu algoritmu po jeho implementácii. V tomto je algoritmus skontrolovaný jeho implementáciou v akomkoľvek programovacom jazyku a jeho spustením. Táto analýza pomáha získať aktuálnu a skutočnú správu analýzy o správnosti (pre každý možný vstup/y, či ukazuje/vracia správny výstup alebo nie), potrebnom priestore, spotrebovanom čase atď. To znamená, že závisí od jazyka kompilátor a typ použitého hardvéru.

java čítať súbor csv

Čo je to zložitosť algoritmu a ako ju nájsť?

Algoritmus je definovaný ako zložitý na základe množstva priestoru a času, ktorý spotrebuje. Zložitosť algoritmu sa teda vzťahuje na mieru času, ktorý bude potrebovať na vykonanie a získanie očakávaného výstupu, a na priestor, ktorý bude potrebovať na uloženie všetkých údajov (vstup, dočasné údaje a výstup). Tieto dva faktory teda definujú účinnosť algoritmu.
Dva faktory zložitosti algoritmu sú:

  • Časový faktor : Čas sa meria počítaním počtu kľúčových operácií, ako sú porovnania v triediacom algoritme.
  • Space Factor : Priestor sa meria počítaním maximálneho priestoru v pamäti, ktorý algoritmus vyžaduje na spustenie/spustenie.

Preto Zložitosť algoritmu možno rozdeliť na dva typy :

1. Priestorová zložitosť : Priestorová zložitosť algoritmu sa týka množstva pamäte, ktorú algoritmus vyžaduje na uloženie premenných a získanie výsledku. Môže ísť o vstupy, dočasné operácie alebo výstupy.

Ako vypočítať zložitosť priestoru?
Priestorová zložitosť algoritmu sa vypočíta určením nasledujúcich 2 komponentov:

  • Pevná časť: Toto sa týka priestoru, ktorý algoritmus vyžaduje. Napríklad vstupné premenné, výstupné premenné, veľkosť programu atď.
  • Variabilná časť: To sa týka priestoru, ktorý sa môže líšiť v závislosti od implementácie algoritmu. Napríklad dočasné premenné, dynamické prideľovanie pamäte, priestor zásobníka rekurzie atď.
    Preto vesmírna zložitosť S(P) akéhokoľvek algoritmu P je S(P) = C + SP(I) , kde C je pevná časť a S(I) je premenná časť algoritmu, ktorá závisí od inštančnej charakteristiky I.

Príklad: Zvážte nižšie uvedený algoritmus pre lineárne vyhľadávanie

Krok 1: ŠTART
Krok 2: Získajte n prvkov poľa v arr a číslo, ktoré sa má vyhľadať v x
Krok 3: Začnite od ľavého prvku arr[] a jeden po druhom porovnajte x s každým prvkom arr[]
Krok 4: Ak sa x zhoduje s prvkom, Print True.
Krok 5: Ak sa x nezhoduje so žiadnym z prvkov, Print False.
Krok 6: KONIEC
Tu sú 2 premenné arr[] a x, kde arr[] je premenná časť n prvkov a x je pevná časť. Preto S(P) = 1+n. Priestorová zložitosť teda závisí od n (počet prvkov). Teraz priestor závisí od dátových typov daných premenných a konštantných typov a podľa toho sa vynásobí.

2. Časová zložitosť : Časová zložitosť algoritmu sa týka množstva času, ktorý algoritmus potrebuje na vykonanie a získanie výsledku. Môže to byť pre bežné operácie, podmienené príkazy if-else, príkazy cyklu atď.

Ako vypočítať , Časová zložitosť?
Časová zložitosť algoritmu sa tiež vypočítava určením nasledujúcich 2 komponentov:

  • Konštantná časová časť: Akákoľvek inštrukcia, ktorá sa vykoná len raz, prichádza do tejto časti. Napríklad vstup, výstup, if-else, prepínač, aritmetické operácie atď.
  • Variabilná časová časť: Každá inštrukcia, ktorá je vykonaná viac ako raz, povedzme n-krát, prichádza do tejto časti. Napríklad slučky, rekurzia atď.
    Preto časová zložitosťT(P) akéhokoľvek algoritmu P je T(P) = C + TP(I) , kde C je konštantná časová časť a TP(I) je premenná časť algoritmu, ktorá závisí od inštančnej charakteristiky I.

Príklad: V algoritme lineárneho vyhľadávania vyššie sa časová zložitosť vypočíta takto:

Krok 1: – Konštantný čas
Krok 2: — Variabilný čas (prijímanie n vstupov)
Krok 3: – Variabilný čas (do dĺžky poľa (n) alebo indexu nájdeného prvku)
Krok 4: – Konštantný čas
Krok 5: – Konštantný čas
Krok 6: – Konštantný čas
Preto T(P) = 1 + n + n(1 + 1) + 1 = 2 + 3n, čo možno povedať ako T(n).

Ako vyjadriť algoritmus?

  1. Prirodzený jazyk: - Tu vyjadrujeme algoritmus v prirodzenom anglickom jazyku. Z toho je príliš ťažké pochopiť algoritmus.
  2. Vývojový diagram :- Tu vyjadríme algoritmus vytvorením a jeho grafické/obrázkové znázornenie. Je ľahšie porozumieť ako prirodzený jazyk.
  3. Pseudokód :- Tu vyjadrujeme algoritmus vo forme anotácií a informatívneho textu napísaného jednoduchou angličtinou, ktorá je veľmi podobná skutočnému kódu, ale keďže nemá žiadnu syntax ako ktorýkoľvek z programovacích jazykov, nemôže byť kompilovaná ani interpretovaná počítačom. . Je to najlepší spôsob vyjadrenia algoritmu, pretože mu môže porozumieť aj laik s určitými znalosťami na úrovni školy.