Kas yra algoritmas?

Sužinokite, kaip algoritmai paleidžia pasaulį

Algoritmas yra instrukcijų rinkinys. Apibūdinimas yra tikrai toks paprastas. Algoritmas gali būti toks pat paprastas kaip tokios instrukcijos:

  1. Eik į gatvę
  2. Paimk pirmąją teisę
  3. Rasti antrą namą kairėje
  4. Knock į duris ir
  5. Pateikite paketą.

Tačiau nors algoritmo apibrėžimas yra paprastas, tikroji reikšmė ir tai, kaip ji veikia mūsų gyvenimus, gali būti gana sudėtinga.

Algoritmo pavyzdys

Bendras pavyzdys algoritmo, kurį mes naudojame mūsų kasdieniame gyvenime, yra receptas. Šis instrukcijų rinkinys suteikia mums visas reikalingas sudedamąsias dalis ir nurodymus, ką daryti su šiais ingredientais. Skamba paprasta, ar ne?

Bet ką daryti, jei nežinote, kur laikomas matavimo puodelis? Jums reikės algoritmo, kad jį surastumėte. Jums gali prireikti algoritmo, kaip naudoti matavimo puodelį.

Taigi, nors algoritmas yra instrukcijų rinkinys, taip pat reikia atsižvelgti į tai, kas ar kas ketina interpretuoti tas instrukcijas. Pvz., Jei nurodysite draugui, nurodydamas, kaip patekti iš savo namų į artimiausią parduotuvių parduotuvę, jūsų draugas žinos, kaip patekti į tą parduotuvę, jei jie žino, kur yra jūsų namas. Jie nesugeba (dar) rasti, kad konkreti parduotuvė pasakyti, kito draugo namas.

Taip algoritmas gali būti paprastas ir sudėtingas. Kai kalbame kompiuterinių algoritmų požiūriu, suprasti, ką kompiuteris gali padaryti, yra pagrindinė algoritmų formulavimo dalis.

Kaip išsivystė algoritmų rūšiavimo algoritmai

Vienas iš seniausių sukurtų algoritmų buvo burbuliukų rūšiavimo tvarkaraštis. Bubble sort yra skaitmenų, raidžių ar žodžių rūšiavimo metodas, naudojant kilpą per duomenų rinkinį, lyginant kiekvieną verčių komplektą šalia kito ir keičiant juos, kai reikia.

Ši kilpa pakartojama, kol algoritmas gali pereiti per visą sąrašą, nereikia nieko keisti, tai reiškia, kad vertės yra tinkamai rūšiuojamos. Šis algoritmo tipas dažnai vadinamas rekursiniu algoritmu, nes jis vis tiek kartoja save tol, kol baigia užduotį.

Šis algoritmas gali atrodyti taip paprasta, kaip:

  1. Eikite į pirmąją vertę.
  2. Jei reikia, patikrinkite, ar tai vertę prieš kitą vertę, ir apsikeitimo pozicijas
  3. Eikite į kitą vertę ir pakartokite palyginimą.
  4. Jei mes esame sąrašo gale, grįžkite į viršų, jei bet kokia reikšmė buvo pakeista kilpos metu.

Bet burbuliukų rūšiuoti neatsirado kaip efektyviausias būdas rūšiuoti vertybes. Laikui bėgant, kompiuteriai sugebėjo greitai atlikti sudėtingas užduotis, pasirodė nauji rūšiavimo algoritmai.

Vienas iš tokių algoritmų nuskaito per pirmąjį sąrašą ir sukuria antrą surūšiuotų verčių sąrašą. Šis metodas leidžia atlikti tik vieną leidimą per pradinį sąrašą ir su kiekviena verte, jis sukurs antrąjį sąrašą, kol nustatys tinkamą vietą, kuria vertė. Paprastai jis yra efektyvesnis nei naudojant burbuliukų rūšiavimo metodą.

Būtent čia algoritmai gali būti tikrai beprotiški. Arba tikrai įdomu, priklausomai nuo to, kaip į jį žiūrite.

Nors burbuliukų rūšiavimo metodas yra laikomas vienu iš labiausiai neefektyvių vertybių rūšiavimo metodų daugeliu atžvilgių, jei originalus sąrašas yra tinkamai išreikštas, burbuliukų rūšiavimas gali būti viena iš efektyviausių. Taip yra dėl to, kad šiuo atveju burbulo rūšiavimo algoritmas per vieną sąrašą eina per vieną kartą ir nustato, ar jis teisingai rūšiuotas.

Deja, mes ne visada žinome, ar mūsų sąrašas yra iš anksto, todėl turime pasirinkti algoritmą, kuris bus veiksmingiausias naudoti daugelyje sąrašų.

Ką mes mokome iš burbulo rūšiuoti

Facebook algoritmai ir daugiau kasdieniame gyvenime

Algoritmai visada padeda žmonėms kasdien. Kai ieškote žiniatinklyje, algoritmas veikia, bando rasti geriausius paieškos rezultatus. Klauskite savo išmaniojo telefono nurodymų, o algoritmas nusprendžia geriausią maršrutą. Kai naršote "Facebook", algoritmas nusprendžia, kuris iš mūsų draugų "Facebook" pranešimų mums yra svarbiausias. (Tikėkimės, kad mūsų draugai neišsiaišys, kuris "Facebook" mano, kad labiausiai mėgsta!)

Tačiau algoritminiai mąstymai gali padėti mums toli už mūsų kompiuterio gyvenimą. Tai netgi gali padėti mums sukurti geresnį sumuštinį.

Tarkime, aš pradedu su dviem duonos gabalėliais, supjaustytu garstyčiu ant vieno gabalo ir majonezu ant kito gabalo. Į duoną įdėjau sūrio gabaliuką su majonezu, šiek tiek kumpio ant jo, kai kuriuos salotos, du pomidorų gabaliukus ir tada uždėkite jį su šia pjaustytuvu su garstyčia ant jo. Geras sumuštinis, ar ne?

Tikrai, jei aš iš karto valgysiu. Bet jei aš paliksiu jį ant stalo keletą minučių, kad viršuje duonos plytelės gali būti šlapi, kad pamerktų tam tikrus pomidorus. Tai problema, kurios man nelabai tikėjosi, ir aš galėčiau sumuštines daugelį metų pamiršti, bet kai tik tai padarysiu, galiu pradėti galvoti apie būdus pakeisti savo algoritmą, kad būtų sukurtas geresnis sumuštinis.

Pavyzdžiui, galėčiau atsikratyti pomidorų. Bet aš nenoriu prarasti to pomidorų skonio. Taigi vietoj to galiu įdėti pomidorų ant sumuštinio po duonos ir salotos. Tai leidžia salotoms sudaryti apsauginę barjerą tarp pomidorų ir duonos.

Taip algoritmas vystosi. Ir algoritmas neturi būti paleistas kompiuteriu, kad jis būtų algoritmas. Algoritmas yra procesas, o procesai yra visi aplink mus.