Mi az algoritmus?

Fedezze fel, hogyan működnek az algoritmusok a világon

Az algoritmus egy sor utasítás. A definíció valóban olyan egyszerű. Az algoritmus ugyanolyan egyszerű lehet, mint az így kapott utasítások:

  1. Menj végig az utcán
  2. Kanyarodj be az első lehetőségnél jobbra
  3. Keresse meg a második házat a bal oldalon
  4. Kopogás az ajtón és
  5. Szállítsa ki a csomagot.

Bár az algoritmus meghatározása egyszerű, a tényleges jelentés és hogyan befolyásolja az életünket meglehetősen bonyolult lehet.

Példa egy algoritmusra

A hétköznapi életünkben használt algoritmus közös példája egy recept. Ez az utasításrendszer megadja nekünk az összes hozzávalót, amelyre szükségünk lesz, és útmutatással arra, hogy mit kell tennünk az összetevőkkel. Jól hangzik, ugye?

De mi van, ha nem tudja, hol tartja a mérőkamrát? Szüksége lesz egy algoritmusra, hogy megtalálja. Előfordulhat, hogy egy algoritmusra is szükséged van egy mérőedény használatához.

Tehát miközben egy algoritmus egy sor utasítás, akkor figyelembe kell vennie, hogy ki vagy mi fog értelmezni ezeket az utasításokat. Például, ha útmutatást ad egy ismerősének, aki részletesen leírja, hogyan juthat el a házából a legközelebbi élelmiszerboltba, ismerőse csak akkor tudja megtudni, hogyan juthat el az áruházhoz, ha tudják, hol található a ház. Nem képesek (még) arra, hogy megtalálják az adott élelmiszerboltot, azt mondják, egy másik barát házát.

Így lehet egy egyszerű és összetett algoritmus. És amikor számítógépes algoritmusokról beszélünk, megértjük, hogy a számítógép képes-e megtenni az algoritmusok megfogalmazásának alapvető részét.

Hogyan fejlődött az algoritmusok rendezése

Az egyik legkorábbi algoritmus a buborékfajták rendszere volt. A buborékfelvétel a számok, a betűk vagy a szavak szétválogatásának módja az adatkészlet átfutása, az egyes értékkészletek egymás melletti összehasonlítása és szükség esetén cseréje.

Ez a hurok megismétlődik, amíg az algoritmus át nem mozog a teljes listán, anélkül, hogy bármit cserélne volna, ami azt jelenti, hogy az értékek megfelelően vannak rendezve. Ezt a fajta algoritmust gyakran rekurzív algoritmusnak nevezik, mivel újra és újra végig húzódik, amíg befejezi a feladatot.

Az algoritmus olyan egyszerű lehet:

  1. Menj az első értékre.
  2. Ellenőrizze, hogy ez az érték a következő értékhez képest, és ha szükséges, cserél pozíciókat
  3. Menjen a következő értékre, és ismételje meg az összehasonlítást.
  4. Ha a lista végén vagyunk, lépjünk vissza a csúcsra, ha bármilyen értéket kicseréltünk a hurok alatt.

De a buborékfajták nem váltak a leghatékonyabb módszernek az értékek szétválogatásához. Ahogy az idő múlott, és a számítógépek egyre jobban képesek voltak komplex feladatok elvégzésére, újfajta rendezési algoritmusok bukkantottak fel.

Egy ilyen algoritmus átvizsgálja az első listát, és létrehoz egy második listát a rendezett értékekről. Ez a módszer csak egyetlen lépést tesz lehetővé az eredeti listán, és minden értékkel a második listán végigpásztázza, amíg meg nem találja a megfelelő helyet az érték megadásához. Általában hatékonyabb, mint a buborék-rendezési módszer használata.

Ez az, ahol az algoritmusok nagyon őrültek lehetnek. Vagy nagyon érdekes, attól függően, hogy nézed meg.

Míg a buborék-rendezési módszert sok szempontból az egyik leginkább hatékony módszer az értékek szétválogatására, az eredeti lista megfelelő előválasztása esetén a buborékfelvétel az egyik leghatékonyabb. Ennek az az oka, hogy ebben a példában a buborék-rendezési algoritmus egyetlen alkalommal megy keresztül a listán, és megállapítja, hogy megfelelően rendezett.

Sajnos nem mindig tudjuk, hogy a listánk előterjesztett-e, ezért egy olyan algoritmust kell választanunk, amely a legtöbb listán keresztül átlagosan a leghatékonyabb lesz.

Mit tanulunk a buborékrendezéstől?

Facebook algoritmusok és a mindennapi életben

Az algoritmusok napi szinten segítik az embereket. Amikor keres a weben, egy algoritmus dolgozik azon, hogy megtalálja a legjobb keresési eredményeket. Kérdezze okostelefonját utasításokról, és egy algoritmus határozza meg a legjobb útvonalat. És ha böngészünk a Facebookon, egy algoritmus eldönti, hogy a mi barátunk Facebook hozzászólásai közül melyik a legfontosabb számunkra. (Reméljük, barátaink nem találják meg, hogy melyik Facebook tartja a legjobban tetszik!)

De az algoritmikus gondolkodás segíthet messze túlmutat számítógépes életünkön. Segíthet nekünk egy jobb szendvics készítésében.

Tegyük fel, hogy két szelet kenyérrel kezdem, egy szeleten mustárt és egy másik szeleten majonézek. A kenyérre egy szelet sajtot készítettem a majonézzel, a tetején egy kis sonkát, salátát, két szelet paradicsomot, majd ráillesztettem rá a mustárra. Jó szendvics, ugye?

Határozottan, ha azonnal megeszem. De ha egy darabig hagyom az asztalra, akkor a legmagasabb szelet kenyérselyem felborulhat a paradicsomból. Ez egy olyan probléma, amire nem gondoltam, és évekig szendvicseket készíthetek, mielőtt észrevettem volna, de ha egyszer megteszem, elkezdek gondolkodni az algoritmus megváltoztatására, hogy jobb szendvicset készítsek.

Például megszabadulhattam a paradicsomból. De nem akarom elveszíteni a paradicsom ízét. Ehelyett a kenyér és a saláta után a paradicsomot a szendvicsre rakhatom. Ez lehetővé teszi, hogy a saláta védő gátat képez a paradicsom és a kenyér között.

Így alakul ki egy algoritmus. És egy algoritmust nem kell a számítógépnek futnia, hogy algoritmus legyen. Az algoritmus egy folyamat, és a folyamatok körülöttünk vannak.