Algoritm

Un algoritm (cuvântul are ca origine numele matematicianului persan Al-Khwarizmi) înseamnă în matematică și informatică o metodă sau o procedură de calcul, alcătuită din pașii elementari necesari pentru rezolvarea unei probleme sau categorii de probleme. De obicei algoritmii se implementează în mod concret prin programarea adecvată a unui calculator, sau a mai multora. Din diverse motive există și algoritmi încă neimplementați, teoretici.

Algoritmul este noțiunea fundamentală a informaticii. Totul este construit în jurul algoritmilor (și a structurilor de date, cum ar fi listele sau grafurile). Este și un concept fundamental al matematicii moderne alături de cel de sistem axiomatic[1].

Câteva exemple de algoritmi:

  • algoritmul de construcție a unui automobil (urmărind procedeele și schițele de fabricație);
  • algoritmul de folosire a unei mașini-unelte (citind manualul de folosire);
  • algoritmul de explorare a unui labirint în vederea găsirii unei ieșiri (una din soluții: se ține o mână pe perete și se merge fără a o dezlipi de acesta).
  • algoritmul (ordinea operațiilor, sau "check list ") la decolarea unui avion turbojet. Acest algoritm desigur nu ține în mod direct de domeniul matematicii sau informaticii.

Proprietăți

Cele mai importante proprietăți ale unui algoritm, îndeplinite de diverșii algoritmi într-o măsură mai mare sau mai mică, sunt următoarele:

  • Corectitudinea - este proprietatea algoritmului de a furniza o soluție corectă a problemei date. În acest sens este de dorit ca algoritmii să se bazeze pe fapte și relații matematice demonstrabile.
  • Caracterul univoc sau determinist - plecând de la un set de date inițial anume, rezultatul este unic, sau altfel spus, repetarea execuției algoritmului duce întotdeauna la aceleași rezultate.
  • Generalitatea - este proprietatea unui algoritm de a rezolva o clasă sau categorie de probleme, și nu doar o singură problemă particulară. Spre exemplu, un algoritm care rezolvă doar ecuația este mai puțin general decât unul care rezolvă ecuația , oricare ar fi valorile lui .
  • Claritatea - proprietatea algoritmului de a descrie cu exactitate și fără ambiguități pașii care trebuiesc parcurși în rezolvarea problemei.
  • Verificabilitatea - acea proprietate a algoritmelor care permite ca fiecare pas să poată fi verificat într-un timp rezonabil de către om, folosind mijloace de validare de încredere.
  • Optimalitatea - proprietatea unui algoritm de a se termina după un număr minim de pași. De exemplu, dacă se cere să se calculeze suma primelor 'n' numere naturale, se poate aplica formula de calcul, și astfel algoritmul se termină într-un singur pas, pe când dacă am aduna toate numerele de la 1 la n, el s-ar termina abia în n pași, și deci nu ar fi optim. În teoria complexității se folosește notația O(n).
  • Finitudinea - este proprietatea algoritmului de a se termina într-un număr finit de pași. Există și algoritmi care nu se termină într-un număr mărginit de pași, dar aceștia se numesc "metode algoritmice".
  • Eficiența - este proprietatea unui algoritm de a se termina nu numai într-un număr finit, ci și "rezonabil" de pași, chiar dacă acesta nu este cel mai mic posibil (nu este optim). Algorimul este ineficient și dacă rezultatul se obține într-un timp mai lung decât cel dorit sau permis.
  • Existența unei intrări (datele de prelucrat). Întrucât operatorii se aplică unui operand (sau și mai multor operanzi deodată), este de neconceput un algoritm fără niciun operand. Intrările permise formează împreună un set (mulțime) specific de obiecte sau valori, care se numește "domeniul" algoritmului.
  • Existența unei ieșiri (rezultatele). Este de neconceput un algoritm care nu are nicio ieșire, deoarece în acest caz intră în discuție însăși utilitatea sa.
Alte limbi
Afrikaans: Algoritme
Alemannisch: Algorithmus
አማርኛ: አልጎሪዝም
aragonés: Algorismo
العربية: خوارزمية
asturianu: Algoritmu
azərbaycanca: Alqoritm
تۆرکجه: القوریتم
башҡортса: Алгоритм
беларуская: Алгарытм
беларуская (тарашкевіца)‎: Альгарытм
български: Алгоритъм
bosanski: Algoritam
català: Algorisme
کوردی: ئەلگۆریتم
čeština: Algoritmus
Cymraeg: Algorithm
dansk: Algoritme
Deutsch: Algorithmus
Ελληνικά: Αλγόριθμος
English: Algorithm
Esperanto: Algoritmo
español: Algoritmo
eesti: Algoritm
euskara: Algoritmo
فارسی: الگوریتم
suomi: Algoritmi
føroyskt: Algoritma
français: Algorithme
Gaeilge: Algartam
galego: Algoritmo
עברית: אלגוריתם
हिन्दी: अल्गोरिद्म
hrvatski: Algoritam
magyar: Algoritmus
Հայերեն: Ալգորիթմ
interlingua: Algorithmo
Bahasa Indonesia: Algoritme
Ilokano: Algoritmo
íslenska: Reiknirit
italiano: Algoritmo
ქართული: ალგორითმი
Qaraqalpaqsha: Algoritm
Gĩkũyũ: Algorithm
қазақша: Алгоритм
한국어: 알고리즘
kurdî: Algorîtma
Кыргызча: Алгоритм
Latina: Algorithmus
Lëtzebuergesch: Algorithmus
Lingua Franca Nova: Algoritmo
lumbaart: Algoritm
lietuvių: Algoritmas
latviešu: Algoritms
олык марий: Алгоритм
македонски: Алгоритам
മലയാളം: അൽഗൊരിതം
монгол: Алгоритм
Bahasa Melayu: Algoritma
Mirandés: Algoritmo
नेपाली: अल्गोरिदम
नेपाल भाषा: अल्गोरिथम
Nederlands: Algoritme
norsk nynorsk: Algoritme
norsk: Algoritme
occitan: Algoritme
Oromoo: Seermurtoo
ਪੰਜਾਬੀ: ਕਲਨ ਵਿਧੀ
polski: Algorytm
پنجابی: الگورتھم
português: Algoritmo
русский: Алгоритм
русиньскый: Алґорітм
саха тыла: Алгоритм
sicilianu: Alguritmu
Scots: Algorithm
srpskohrvatski / српскохрватски: Algoritam
Simple English: Algorithm
slovenčina: Algoritmus
slovenščina: Algoritem
shqip: Algoritmi
српски / srpski: Алгоритам
Basa Sunda: Algoritma
svenska: Algoritm
తెలుగు: అల్గారిథం
тоҷикӣ: Алгоритм
Tagalog: Algoritmo
Türkçe: Algoritma
татарча/tatarça: Алгоритм
українська: Алгоритм
oʻzbekcha/ўзбекча: Algoritm
Tiếng Việt: Thuật toán
walon: Algorisse
Winaray: Algoritmo
ייִדיש: אלגאריטם
中文: 算法
Bân-lâm-gú: Ián-sǹg-hoat
粵語: 演算法