Sa matematika asin siyensyang pangkompyuter, an algoritmo (Ingles: algorithm) iyo sarong may kasagkorang sekwensya nin may marhay na kahulugan, mga instruksyon na maiimplenta sa kompyuter, tipikal para masimbagan an klase nin mga ispesipikong problema o para makagibo nin komputasyon.[1][2] An mga algoritmo iyo pirmi na may saro sanang kahulogan asin iyo nagagamit bilang mga ispesipikasyon para sa paggibo nin mga kalkulasyon, pagproseso nin mga datos, awtomatikong pagrason, asin iba pang mga kagibohan. Sa kontrasto, an heuristika iyo sarong teknik na ginagamit sa pagsimbag nin mga problema na minagamit nin mga praktikal na paagi asin/o nagkapirang mga estima para makahimo nin mga solusyon na maski ngani bakong optimal pero iyo tama sana sa nasambit na pangyayari.[3][4]
Bilang sarong epektibong paagi, an algoritmo pwedeng maipahiling sa laog nin kasagkorang bilang nin espasyo asin oras,[5] asin sa marhay na pormal na lenggwahe[6] para sa pagkalkula nin sarong paggana (function).[7] Poon sa inisyal na istado asin sa inisyal na pigkaag "input" (siguro mayong laog),[8] an mga instruksyon iyo nagpapaliwanag nin komputasyon, kun sain kapag pigpagana, nagpapadagos sa paagi nin kasagkorang[9] bilang nin marhay na surunudang istado, na minahimo nin sarong pigluwas "output"[10] asin pigtatapos sa pinal na katapusang istado. An transisyon gikan sa sarong istado pasiring sa masunod iyo dae kinakaipohan na deterministiko; an ibang mga algoritmo, na bisto bilang mga purakang algoritmo (randomized algorithm), iyo minabali nin purakang pigkaag (random input).[11]
↑"Definition of ALGORITHM". Merriam-Webster Online Dictionary (in English). Archived from the original on February 14, 2020. Retrieved 2019-11-14.Unknown parameter |url-status= ignored (help)
↑"Any classical mathematical algorithm, for example, can be described in a finite number of English words" (Rogers 1987:2).
↑Well defined with respect to the agent that executes the algorithm: "There is a computing agent, usually human, which can react to the instructions and carry out the computations" (Rogers 1987:2).
↑"an algorithm is a procedure for computing a function (with respect to some chosen notation for integers) ... this limitation (to numerical functions) results in no loss of generality", (Rogers 1987:1).
↑"An algorithm has zero or more inputs, i.e., quantities which are given to it initially before the algorithm begins" (Knuth 1973:5).
↑"A procedure which has all the characteristics of an algorithm except that it possibly lacks finiteness may be called a 'computational method'" (Knuth 1973:5).
↑"An algorithm has one or more outputs, i.e. quantities which have a specified relation to the inputs" (Knuth 1973:5).
↑Whether or not a process with random interior processes (not including the input) is an algorithm is debatable. Rogers opines that: "a computation is carried out in a discrete stepwise fashion, without the use of continuous methods or analogue devices ... carried forward deterministically, without resort to random methods or devices, e.g., dice" (Rogers 1987:2).