algoritmus

Üdvözlöm, Ön a algoritmus szó jelentését keresi. A DICTIOUS-ban nem csak a algoritmus szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a algoritmus szót egyes és többes számban mondani. Minden, amit a algoritmus szóról tudni kell, itt található. A algoritmus szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. Aalgoritmus és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

Kiejtés

  • IPA:

Főnév

algoritmus

  1. (matematika, informatika, számításelmélet, algoritmusok) Az algoritmus egy probléma megoldására szolgáló, pontosan meghatározott lépések sorozata, amelyet egy gép (például számítógép) vagy ember követhet. Az algoritmusok az informatika és a matematika alapvető fogalmai közé tartoznak, és kulcsszerepet játszanak a programozásban, valamint a különböző problémák hatékony megoldásában.



Algoritmusok főbb jellemzői

  1. Végesség: Az algoritmus véges számú lépés után befejeződik.
  2. Egyértelműség: Az egyes lépések pontosan meghatározottak és félreérthetetlenek.
  3. Bemenet: Az algoritmus rendelkezhet bemeneti adatokkal, amelyek a probléma kezdeti állapotát reprezentálják.
  4. Kimenet: Az algoritmus legalább egy eredményt (kimenetet) ad vissza.
  5. Hatékonyság: Az algoritmusnak az adott erőforrások (idő és memória) szempontjából optimálisnak kell lennie.



Algoritmusok típusai

  1. Lineáris algoritmusok
    Olyan algoritmusok, amelyek egyenes vonalban, lépésről lépésre hajtják végre az utasításokat.
    Példa: Egy számokból álló lista elemeinek összege.

    def osszeg(lista):
        osszeg = 0
        for szam in lista:
            osszeg += szam
        return osszeg
    
  2. Elágazó algoritmusok
    Ezeknél az algoritmusoknál a végrehajtás iránya a feltételek teljesülésétől függ.
    Példa: Egy szám pozitív, negatív vagy nulla.

    def szam_tipusa(szam):
        if szam > 0:
            return "Pozitív"
        elif szam < 0:
            return "Negatív"
        else:
            return "Nulla"
    
  3. Ismétlődő algoritmusok (Iteráció)
    Egy algoritmus bizonyos lépései ismétlődnek egy adott feltétel teljesüléséig.
    Példa: Faktoriális számítása.

    def faktorialis(n):
        eredmeny = 1
        for i in range(1, n + 1):
            eredmeny *= i
        return eredmeny
    
  4. Rekurzív algoritmusok
    Az algoritmus önmagát hívja meg egy kisebb részprobléma megoldására.
    Példa: Fibonacci-számok kiszámítása.

    def fibonacci(n):
        if n <= 1:
            return n
        return fibonacci(n - 1) + fibonacci(n - 2)
    



Algoritmusok hatékonysága

Az algoritmusok hatékonyságát az alábbi szempontok alapján értékelhetjük:

  1. Időbonyolultság (Time Complexity):

Az algoritmus futásához szükséges idő a bemenet méretének függvényében. Az időbonyolultságot gyakran Big-O jelöléssel adjuk meg:

    • (O(1)): Konstans idő.
    • (O(n)): Lineáris idő.
    • (O(n^2)): Négyzetes idő, például a buborékrendezés esetében.
    • (O(n)): Logaritmikus idő, például bináris keresésnél.
  1. Térbonyolultság (Space Complexity):

Az algoritmus által elfoglalt memória mérete a bemenet nagyságának függvényében.



Példák különböző algoritmusokra

1. Rendezési algoritmusok

Ezek az algoritmusok egy lista elemeinek meghatározott sorrendbe állítására szolgálnak.

  • Buborékrendezés (Bubble Sort):

Egyszerű, de nem túl hatékony algoritmus ((O(n^2))).
python def buborek_rendezes(lista): n = len(lista) for i in range(n): for j in range(0, n-i-1): if lista > lista: lista, lista = lista, lista return lista

  • Gyorsrendezés (Quick Sort):

Hatékonyabb rendezési algoritmus ((O(n n)) átlagosan).
python def gyors_rendezes(lista): if len(lista) <= 1: return lista pivot = lista kisebb = egyenlo = nagyobb = return gyors_rendezes(kisebb) + egyenlo + gyors_rendezes(nagyobb)

2. Keresési algoritmusok

  • Lineáris keresés

Egyszerű, de lassú algoritmus ((O(n))).
python def linearis_kereses(lista, cel): for i, elem in enumerate(lista): if elem == cel: return i return -1

  • Bináris keresés

Hatékonyabb, ha a lista rendezett ((O(n))).
python def binaris_kereses(lista, cel): bal, jobb = 0, len(lista) - 1 while bal <= jobb: kozep = (bal + jobb) // 2 if lista == cel: return kozep elif lista < cel: bal = kozep + 1 else: jobb = kozep - 1 return -1

3. Graf-algoritmusok

  • Dijkstra algoritmus

Rövid legútdetektálás egy csúcsról a gráfban.
python import heapq def dijkstra(graf, kezd): tavolsag = {csucs: float('inf') for csucs in graf} tavolsag = 0 prioritas_sor = while prioritas_sor: akt_tav, akt_csucs = heapq.heappop(prioritas_sor) if akt_tav > tavolsag: continue for szomszed, suly in graf: uj_tav = akt_tav + suly if uj_tav < tavolsag: tavolsag = uj_tav heapq.heappush(prioritas_sor, (uj_tav, szomszed)) return tavolsag


Etimológia

A perzsa al-Khwārizmī (الخَوَارِزْمِيّ(al-ḵawārizmiyy) névből.

Fordítások

Lásd még