Kas ir algoritms?

Uzziniet, kā algoritmi darbojas pasaulē

Algoritms ir instrukciju kopums. Definīcija patiešām ir tik vienkārša. Algoritms var būt tikpat vienkāršs kā šādu instrukciju ievadīšana:

  1. Iet uz ielas
  2. Paņemiet pirmās tiesības
  3. Atrodiet otro māju pa kreisi
  4. Klauvēt pie durvīm un
  5. Piegādājiet iepakojumu.

Bet, lai arī algoritma definīcija ir vienkārša, faktiskā nozīme un tas, kā tas ietekmē mūsu dzīvi, var būt diezgan sarežģīta.

Algoritma piemērs

Parasts piemērs algoritmam, ko mēs izmantojam mūsu ikdienas dzīvē, ir recepte. Šis instrukciju komplekts dod mums visas sastāvdaļas, kas mums būs nepieciešamas, un norādījumus par to, kā rīkoties ar šīm sastāvdaļām. Izklausās viegli, vai ne?

Bet ko tad, ja jūs nezināt, kur tiek turēts mērkauss? Lai to atrastu, jums ir nepieciešams algoritms. Jums pat var būt nepieciešams algoritms, kā izmantot mērtrauku.

Tātad, kamēr algoritms ir instrukciju kopums, tajā jāņem vērā arī tas, kas vai kāds plāno interpretēt šos norādījumus. Piemēram, ja norādāt draugam, norādot, kā nokļūt no jūsu mājas uz tuvāko pārtikas veikalu, jūsu draugs zinās, kā nokļūt šajā veikalā, ja viņi zina, kur atrodas jūsu māja. Viņi nespēj (vēl) atrast šo konkrēto pārtikas preču veikalu no teikt, cita drauga māja.

Tas nozīmē, ka algoritms var būt gan vienkāršs, gan sarežģīts. Un, runājot par datora algoritmiem, algoritmu formulēšanas būtiska nozīme ir izpratnei par to, ko dators spēj izdarīt.

Kā attīstījies algoritmu šķirošana

Viens no ātrāk izveidotajiem algoritmiem bija burbuļu kārtojuma rutīna. Burbuļu šķirošana ir skaitļu, burtu vai vārdu šķirošanas metode, izmantojot cilpu, izmantojot datu kopu, salīdzinot katru vērtību komplektu blakus un vajadzības gadījumā pārorientējot.

Šo cilpu atkārto, kamēr algoritms nevar pārvietoties pa visu sarakstu, neko nemainot, tas nozīmē, ka vērtības ir sakārtotas pareizi. Šis algoritma veids bieži tiek saukts par rekursīvu algoritmu, jo tas atkal uzliek sev līdzi, līdz tas pabeidz uzdevumu.

Algoritms varētu izskatīties tikpat vienkāršs kā:

  1. Iet uz pirmo vērtību.
  2. Ja nepieciešams, pārbaudiet šo vērtību pret nākamo vērtību un mainiet pozīcijas
  3. Iet uz nākamo vērtību un atkārtojiet salīdzināšanu.
  4. Ja mēs esam saraksta beigās, atgriezīsimies augšā, ja ciklā tiek mainīta kāda vērtība.

Bet burbuļu šķirošana nebija visefektīvākais vērtību šķirošanas veids. Kad laiks turpinājās, un datori sāka spēt ātri veikt sarežģītus uzdevumus, parādījās jauni šķirošanas algoritmi.

Viens šāds algoritms skenē pirmo sarakstu un izveido otro sarakstu ar sakārtotām vērtībām. Šī metode veido tikai vienu caurlaidi sākotnējā sarakstā, un ar katru vērtību tā tiks nobīdīta caur otro sarakstu, līdz tā atradīs pareizo vietu, lai piešķirtu vērtību. Parasti tas ir efektīvāks nekā burbuļu šķirošanas metodes izmantošana.

Šeit algoritmi var iegūt patiešām traki. Vai tiešām interesanti, atkarībā no tā, kā jūs uz to skatāties.

Lai gan burbuļu šķirošanas metode tiek uzskatīta par vienu no visveiksmīgākajām vērtēšanas veidu metodēm vairākos veidos, ja sākotnējais saraksts ir pareizi izlaists, burbuļu šķirošana var būt viens no visefektīvākajiem. Tas ir tāpēc, ka šajā gadījumā Burbuļu šķirošanas algoritms iet caur sarakstu vienu reizi un nosaka, ka tas ir pareizi sakārtots.

Diemžēl mēs ne vienmēr pazīstam, vai mūsu saraksts ir iztulkots, tādēļ mums jāizvēlas algoritms, kas būs visefektīvākais, lai to izmantotu vidēji lielā saraksta skaita ziņā.

Ko mēs mācāmies no Bubble kārtas

Facebook algoritmi un ikdienas dzīvi

Algoritmi darbā palīdz cilvēkiem katru dienu. Veicot meklēšanu tīmeklī, algoritms darbojas, mēģinot atrast labākos meklēšanas rezultātus. Jautājiet savam viedtālrunim par norādēm, un algoritms nosaka labāko maršrutu, kuru jūs varat izmantot. Un kad jūs pārlūkojat Facebook, algoritms nosaka, kuras no mūsu drauga Facebook ziņām mums ir vissvarīgākās. (Cerēsim, ka mūsu draugi nezina, kura no Facebook domām mums visvairāk patīk!)

Bet algoritmiski domājot, mēs varam palīdzēt mums daudz tālāk par mūsu datoru dzīvi. Tas var pat palīdzēt mums veidot labāku sviestmaizi.

Pieņemsim, ka es sāku ar divām maizes šķēlītēm, sīrupi pārnes vienā šķēlē un majonēzi uz cita šķēle. Es ielieku siera šķēlīti uz maizes ar majonēzi, kādu šķiņķi virs tā, dažus salātus, divus tomātu šķēles un pēc tam vāģējiet ar šo šķēle ar sinepēm uz tā. Laba sviestmaize, vai ne?

Noteikti, ja es tūlīt ēst. Bet, ja kādu laiku atstāju to uz galda, tas, ka daži no šiem tomātiem iemērc, ka lielākā maizes šķēle var kļūt sārta. Tā ir problēma, kuru es nedomāju gaidīt, un es varētu sviestmaizes padarīt daudzus gadus, pirms pamanīju, taču, kad es to izdarīšu, es varu sākt domāt par veidiem, kā mainīt savu algoritmu, lai izveidotu labāku sviestmaizi.

Piemēram, es varētu atbrīvoties no tomātiem. Bet es negribu zaudēt šo tomātu garšu. Tā vietā es varu ievietot tomātu sviestmaižu pēc maizes un salātu. Tas ļauj salātiem veidot aizsargbarjeru starp tomātu un maizi.

Tas ir kā algoritms attīstās. Un algoritms nav jāuztur datoram kā algoritms. Algoritms ir process, un process ir visapkārt mums apkārt.