Mjukvaruutvecklare balansera många faktorer när man bygger applikationer och webbplatser . I början , när datorer hade lite lagring och resurser , var storlek och hastighet de viktigaste frågorna . Idag , med multi - core processorer och gigabyte minne , komplexitet och underhåll ofta åsidosätta prestanda . Här är några av de viktigaste faktorerna att tänka på när du väljer rätt algoritmer för ditt projekt . Instruktioner
1 prestanda
åtgärd. Den första faktorn som alltid kommer att tänka på när man mäter en algoritm är snabbhet . Ingen vill vänta på långsamma programvara . Det finns flera sätt att avgöra vilken algoritm fungerar bäst för uppgiften . En algoritm kan mätas manuellt genom att räkna anvisningar med sannolikheter för att avgöra exekveringssökvägar . Lättare fortfarande är profilerare som räknas maskincykler som koden körs .
2
Jämför kodstorleken . Även om det inte riktigt lika viktigt som prestanda , ibland storleken på koden blir en faktor . Inbäddad programvara och mobila appar behöver ofta dela begränsat minne , och browser - baserad kod tar tid att ladda ner . Ibland kan en liten träff i prestanda kan offras för att raka en betydande mängd kod .
3
Bestäm graden av komplexitet . De flesta kommersiella mjukvaruutvecklare skriva kod körs på stationära datorer eller webbservrar med massor av processorkraft och mer än tillräckligt med minne . Idag är den största utmaningen i att hantera komplexitet . En ganska enkel affär applikation kan ofta ha allt från några tiotal till flera hundra kodmoduler , alla med flera hundra rader kod . I dessa tillämpningar , de bästa algoritmerna är enkla att förstå och lätt att genomföra . För att mäta komplexitet , räkna antalet beslutspunkter , funktionsanrop , antal variabler och komplexiteten i de datastrukturer .
4
Jämför underhållet . Nära kopplade till komplexiteten är underhållet . En algoritm med mindre komplexitet , presenteras med massor av vitt utrymme och frikostigt beströdda med välskrivna kommentarer , kommer att bli mycket lättare att modifiera när kraven förändras . De flesta utvecklare spenderar mycket mer tid att underhålla och modifiera befintlig kod än de gör skapar ny programvara .
5
Validera riktighet . Ofta förbises i en diskussion om algoritmer är behovet av en lämplig algoritm som uppfyller alla krav och fungerar korrekt . Koden måste returnera korrekta resultat för insatsvaror inklusive randvillkor och oväntade värden . Filter måste vara på plats för att avvisa dåliga data och undantagshantering kod måste reagera på numeriska bräddningar underflöden , nätverksproblem eller andra villkor .
6
Välj den lämpligaste algoritmen . Det bästa valet balanserar alla dessa faktorer på ett sätt som maximerar prestanda och minimerar kostnaderna för utveckling och ägande .