En dator algoritm är , helt enkelt , en uppsättning regler ett program använder för att lösa ett problem , i företrädesvis så få steg som möjligt . Algoritmer kan användas för små uppgifter , eller de kan vara vid mittpunkten av gigantiska företag , den algoritm Google använder för att få sökresultat är massiv , och ständigt förändras ( och en väl bevarad hemlighet ) . Sofistikerade algoritmer använder händelser och villkorssatser för att uppnå bästa resultat . Grundläggande algoritmer
Grundtanken bakom algoritmer - och riktigt , program i allmänhet - är att bestämma vad du vill uppnå och sedan hålla bryta den i steg . Till exempel , säga att du vill spela tennis . Du kanske måste göra följande :
1 . Ring några vänner och bjuda in dem till play.2 . Samla din stuff.3 . Kör till tennisbanan .
Naturligtvis betyder inte alltid hända sånt . Så du kanske vill förfina att både vara mer specifik och täcka alla möjliga resultat .
1 . Ring en vän och bjuda in dem att spela . Om vän säger nej , upprepa detta steg med en annan vän . Om vän säger ja , gå till steg # 2.2 . Bestäm en tid och plats till play.3 . Leta upp din tennis racket.4 . Sätt ditt tennisracket i din car.5 . Tio minuter före [ tid ] inträffar kör , till [ plats ] .
Som ni kan se , kan du hålla bryta upp det i ytterligare steg och ytterligare alternativa scenarier .
Ingredienser av algoritmer
mer komplicerad algoritm ovan innehåller faktiskt ett antal principer för programplanering . Ta en titt på steg # 1 . Det är en grundläggande programmering loop : fortsätta göra en viss uppgift ( ringa vänner ) tills ett villkor är uppfyllt ( man säger ja ) katalog
Du kan också se det som ett " case " eller " om /då " . uttalande . I fallet med " ja ", gå till steg # 2 . I fallet med " nej ", gå till steg # 1 . Eller , om " ja ", gå till steg # 2 . Om något annat svar , upprepa steg # 1 . Du måste själv bestämma den bästa metoden att använda för varje enskild algoritm
Steg # 2 skapar två variabler : . En tid och en plats . Du kan koppla in dem i ditt program senare , i steg # 5 , när dina handlingar är beroende av värdena för de båda variablerna
Slutligen innehåller Steg # 5 en händelse : . När [ tid ] minus tio minuter inträffar , få i din bil .
felkontroll och Fullständighet
en av de stora svårigheterna bakom att skapa algoritmer är nödvändigheten att täcka varje scenario . Detta är tydligast illustreras i att skapa program som är beroende av användarinmatning. Till exempel , i ett spel , vad om spelaren beslutar sig för att döda en karaktär som är avgörande för handlingen ? Gör du det tecken oförstörbar ? Vill du skapa en alternativ seger skick ? I ett webbformulär , vad händer om du ber användaren att mata in ett nummer mellan ett och 10 och de ingående " bob " ? För att skapa de mest solida algoritmen möjligt , måste du tänka ut alla möjliga utfall och bygga in kontroller för varje av dem. Addera