Billedkredit: vgajic/E+/GettyImages
At udtænke nye algoritmer kan virke skræmmende for nye programmører, men det er en færdighed, der kan øves som enhver anden. Start med at lede efter en bog med algoritmeproblemer for begyndere eller ved at tage en online eller offline datalogi-time. Øv dig i at mestre det grundlæggende i algoritmedesign, herunder estimering af kompleksitet og køretid, kontrol til kantsager, der kan forårsage problemer for en computeralgoritme og opdele problemer i mindre dele.
Hvad er en computeralgoritme
En algoritme er en procedure, som en computer eller et menneske følger for at løse et problem. Lang division er en prøvealgoritme, som mange mennesker lærer at lave i skolen. Den euklidiske algoritme, der bruges til at finde den største fælles divisor af to tal, er et andet almindeligt eksempel.
Dagens video
En computeralgoritme er i sidste ende skrevet i et programmeringssprog, som computeren kan forstå, men når algoritmen bliver udviklet, programmører og dataloger skriver det ofte først uformelt som prosa og derefter mere formelt i et generisk format kaldet pseudokode.
Pseudokode ligner et programmeringssprog, men fordi det er designet til at blive læst af mennesker frem for computere, har det ikke strenge syntaktiske regler.
Simple algoritmeeksempler for begyndere
Berømte eksempler på algoritmer læres ofte til begyndere dataloger og programmører. Nogle eksempler er Dijkstras Algoritme, som bruges i grafteori til at finde den korteste vej mellem to punkter; Merge Sort, som bruges til at sortere lister over data; og RSA-algoritmen, der bruges til at kryptere data. Mange af disse er tilgængelige online i gratis lærebøger, videoer og kursusmateriale.
Online læringssiden Khan Academy har mange eksempler på algoritmer, som begyndere kan eksperimentere med. Store universiteter som Harvard, Stanford og Massachusetts Institute of Technology laver læseplaner materialer og kursusvideoer med almindelige algoritmer tilgængelige online til introduktion til datalogi klasser.
Der er også websteder med programmeringskonkurrenceproblemer og forklaringer på, hvordan de løses, som kan hjælpe folk, der er interesserede i at udvikle deres færdigheder.
Algoritmeovervejelser
Når du kommer med en ny algoritme, vil du gerne sikre dig, at den virker i alle tilfælde, hvor du synes, den burde, og forsøge at forstå, hvor effektiv den er. Typisk opdeler programmører algoritmen i diskrete dele, så de kan tænke over, hvordan hver del fungerer, og hvor lang tid det tager. Dette kaldes modulært design.
Det er en god idé selv at teste en algoritme med pen og papir på nogle simple sager, inden du begynder at skrive kode. Når du tænker på effektivitet, så tænk på den gennemsnitlige sag, almindelige situationer, som din algoritme sandsynligvis vil støde på, og den værst tænkelige kørselstid. Den værste kørselstid er ofte repræsenteret med det, der kaldes Big-O Notation.