Kio estas Algoritmo?

Malkovru, kiel algoritmoj kuras la mondon

Algoritmo estas aro de instrukcioj. La difino vere estas tiel simpla. Algoritmo povas esti tiel facila kiel doni instrukciojn kiel ĉi:

  1. Iru malsupren la straton
  2. Prenu la unuan rajton
  3. Trovu la duan domon maldekstre
  4. Frapu la pordon kaj
  5. Liberigu la pakon.

Sed dum la difino de algoritmo estas simpla, la reala signifo kaj kiel ĝi influas niajn vivojn povas esti sufiĉe kompleksa.

Ekzemplo de Algoritmo

Komuna ekzemplo de algoritmo, kiun ni uzas en niaj ĉiutagaj vivoj, estas recepto. Ĉi tiu aro de instrukcioj donas al ni ĉiujn ingrediencojn, kiujn ni bezonos kaj ordonojn pri tio, kion fari kun tiuj ingrediencoj. Sonas facila, ĉu ne?

Sed kio, se vi ne scias, kie konservas la mezuran tason? Vi bezonus algoritmon por trovi ĝin. Vi eble bezonas algoritmon pri kiel uzi mezuran tason.

Do dum algoritmo estas aro de instrukcioj, ĝi ankaŭ devas konsideri, kiu aŭ kio interpretos tiujn instrukciojn. Ekzemple: Se vi donos ordonojn al amiko, kiu montras kiel eliri el via domo al la plej proksima manĝaĵejo, via amiko nur scios kiel atingi tiun butikon se ili scias, kie troviĝas via domo. Ili ne kapablas (tamen) trovi tiun apartan manĝaĵejon de diri, alia domo de amiko.

Jen kiel algoritmo povas esti simpla kaj kompleksa. Kaj kiam ni parolas laŭ komputilaj algoritmoj, komprenante, kion komputilo kapablas fari, estas fundamenta parto de formuli algoritmojn.

Kiel Sorting Algoritms Evolved

Unu el la plej fruaj algoritmoj kreitaj estis la bubble-varo-rutino. Bubble-varo estas metodo por ordigi nombrojn, literojn aŭ vortojn per ligo per datuma aro, komparante ĉiun aron de valoroj alflanke, kaj interŝanĝante ilin kiam necesas.

Ĉi tiu buklo ripetas ĝis la algoritmo povas trapasi la tutan liston sen neceso interŝanĝi ion, kio signifas, ke la valoroj estas ordo korekte. Ĉi tiu tipo de algoritmo estas ofte nomata rekursia algoritmo ĉar ĝi maŝas sin laŭlonge de kiam ĝi kompletigas la taskon.

La algoritmo eble aspektas tiel simpla kiel:

  1. Iru al la unua valoro.
  2. Kontrolu tiun valoron kontraŭ la sekva valoro kaj interŝanĝaj pozicioj, se necese
  3. Iru al la sekva valoro kaj ripetu la komparo.
  4. Se ni estas ĉe la fino de la listo, reiru al la supro se iu valoro interŝanĝiĝis dum la buklo.

Sed bubla varo ne rezultis esti la plej efika maniero ordigi valorojn. Dum tempo daŭris kaj komputiloj fariĝis pli kapablaj fari kompleksajn taskojn rapide, novaj ordigaj algoritmoj aperis.

Unu tia algoritmo skuas tra la unua listo kaj kreas duan liston de ordigitaj valoroj. Ĉi tiu metodo nur faras solan paŝon tra la originala listo, kaj kun ĉiu valoro, ĝi buklo tra la dua listo ĝis ĝi trovas la ĝustan lokon por meti la valoron. Kutime, ĝi estas pli efika ol uzado de la bobelo-varo.

Jen kie algoritmoj povas vere freneziĝi. Aŭ vere interesa, depende de kiel vi rigardas ĝin.

Dum la bubble-varo-metodo estas konsiderata kiel unu el la plej ineficaj metodoj de ordigaj valoroj en multaj manieroj, se la originala listo estas surteriĝita konvene, bubble-varo povas esti unu el la plej efikaj. Jen ĉar, en tiu kazo, la bubble-varo algoritmo pasos tra la listo unufoje kaj determini ĝin ĝuste korekte.

Bedaŭrinde, ni ne ĉiam scias, ĉu nia listo estas saturita, do ni devas elekti algoritmon, kiu estos la plej efika por uzi averaĝe tra multaj listoj.

Kion Ni Lernas De Bubble Ordigi

Algoritmoj de Facebook Kaj Pli En Ĉiutaga Vivo

Algoritmoj laboras helpante homojn ĉiutage. Kiam vi serĉas la retejon, algoritmo laboras provante trovi la plej bonajn rezultojn. Demandu vian inteligentan telefonon por direktoj, kaj algoritmo decidas la plej bonan vojon por vi preni. Kaj kiam vi esploros Facebook, algoritmo decidas, kiu el niaj poŝtoj de nia amiko plej gravas al ni. (Ni esperas, ke niaj amikoj ne eksciu, kiun Facebook opinias, ke ni plej ŝatas!)

Sed pensante algoritme povas helpi nin multe pli ol niaj komputilaj vivoj. Ĝi povas eĉ helpi nin konstrui pli bonan sandviĉon.

Ni diru, ke mi komencas kun du tranĉaĵoj da pano, disvastigante sinardon sur unu tranĉaĵo kaj majonezo sur alia tranĉaĵo. Mi metis tranĉaĵon de fromaĝo sur la pano kun la majonezo, kelkan ŝinkon supre, iom da lakto, du tranĉaĵoj de tomato kaj poste kasxu ĝin per tiu tranĉaĵo kun la mustardo sur ĝi. Bona sandviĉo, ĉu ne?

Definitive se mi manĝos ĝin tuj. Sed se mi lasos ĝin sur la tablon dum kelka tempo, tiu supro tranĉaĵo de pano povus esti soggy pro trinkado de iu el tiu tomato. Estas problemo, kiun mi ne anticipis, kaj mi povus fari sandviĉojn antaŭ jaroj antaŭ rimarki, sed unufoje mi povas komenci pensi pri modoj ŝanĝi mian algoritmon por konstrui pli bonan sandviĉon.

Ekzemple mi povus forigi la tomaton. Sed mi ne volas perdi tiun tomaton-guston. Do anstataŭe mi povas meti la tomaton sur la sandviĉon post la pano kaj la laktuko. Ĉi tio permesas la laktukon formi protektan baro inter la tomato kaj la pano.

Jen kiel algoritmo evoluas. Kaj algoritmo ne devas esti kurita de komputilo por esti algoritmo. Algoritmo estas procezo, kaj procezoj estas ĉirkaŭ ni.