Algorithm?

Tags:    programmering

Hejsa.

Jeg har siddet og læst lidt om Algorithm den sidste halve time, og er stadigvæk lidt i tvivl om jeg har forstået rigtigt, så ville høre af om der var nogen der gad forklare præcist hvad det er?

Eventuelt en lille simpel kode der kan forklare opgaven?



En algoritme svare til en præcis punktformig opskrift, som løser et problem. Algoritmen er så præcis defineret at den kan omskrives til koder, så computeren kan køre algoritmen og løse problemet for dig.

Et eksempel kunne være hvordan du søger igennem en liste med tal, for at undersøge om et bestemt tal er i listen. En meget simpel algoritme kunne være at lede efter tallet 4 i følgende liste:

-10 1 3 4 9 21

En måde kunne være at starte for en ende af og prøve alle tal i listen for at tjekke om tallet er lig 4. Dette svare til følgende kode:
Fold kodeboks ind/udKode 


Hurtigere algoritmer end denne findes godt nok. Men det er et fint eksempel.


Håber du forstår.



Indlæg senest redigeret d. 23.11.2010 10:07 af Bruger #5097
En algoritme er en "opskrift" til at løse et bestemt problem.

Der findes f.eks. forskellige algoritmer til at sortere en liste. Algoritmen beskrives på et generelt niveau, og kan så implementeres i ens programmeringssprog.



okey, tror det gav mening nu :-)

Koden virker mere simpelt end jeg troede..
Jeg forstår den hvertfald.

----

Hvordan laver jeg så en algorithm?
Og findes der nogle forståelige bøger omkring emnet i system udvikling?



Forresten, nu forsøger jeg lige at lave en algor i php:


Fold kodeboks ind/udKode 


Er det rigtigt?
Formålet med koden er at formindske tiden til at søge efter det bogstav der skal bruges, som i dette tilfælde er bogstavet "a".

Så selv hvis $str = "b a c abc";
Så ville den stadigvæk løse problemet hurtigere end hvis jeg skulle hen og søge efter b?



Indlæg senest redigeret d. 23.11.2010 10:36 af Bruger #15611
Ja det kunne godt være en algoritme. Man ville kunne skrive den op sådan her:

- Sorter listen str
- For hver element i listen gør følgende:
-- Hvis elementet er lig "a" så print elementet.

Din algoritme er desværre bare ikke hurtigere end at tjekke hele listen igennem.

Hvis der var n elementer vil du nemlig worst case lave n sammenligninger før du har fundet a.
Men selv den hurtigste sorterings-algoritme, og derved også den php bruger, har brug for at lave n*log(n) sammenligninger, for at kunne sorterer.
Men princippet er helt korrekt.



Theis:

Okey, men, jeg tror jeg forstod det nu :D

Tak.



Og findes der nogle forståelige bøger omkring emnet i system udvikling?


http://books.google.dk/books?id=NLngYyWFl_YC



Ahhh, Tak Jesper, men fy for pokker hvor koster nogle af dem meget.. :S



t