Algoritmeforståelse har ikke noget med det ene eller det andet programmeringssprog at gøre, det er mer noget med metodik og selvdisciplin.
Sprogene kommer så ind i anden række når man skal vælge imellem flere mulige algoritmer til løsning af samme problem.
eksempel.
problemet: At spise en skålfuld havregrød.
mulige algoritmer er så (der er sikkert flere)
sekventielt. spis skefuld efter skefuld indtil skålen er tom.
rekursivt. spis en skefuld og spis så restan af hvad der er i skålen.
concurrent. hvis der ikke er mere i skålen en der kan være på en ske så spis det. ellers opdel skålen i to og genstart denne process for hver halvdel.
alle 3 algoritmer får grøden spist. Du skal så vælge den der er \'bedst\' udfra diverse kriterier, såsom hvilket sprog der skal bruges, hvad slags computer det skal køre på, osv osv.
i pascal, c, c++ vil man som regel vælge den sekventielle, den passer til sprogets måde at tænke på.
i Java vil man kikke på andre kriterer for at vælge mellem den sekventielle og den concurrent.
i Lisp, Prolog og Forth er man nærmest nødt til at vælge den rekursive algoritme.
på en multi-CPU vil man prøve at vælge den concurrent, og nok gøre det i Java og C++.
mvh JakobA ps: jeg skal nok komme med et par links.
Efter min mening er det ikke så meget computer eller sprog der afgør hvilken algoritme man benytter. Det er ofte problemet man har der afgør hvilken algoritme man bør bruge. Fx hvis man gerne vil sortere n tal kan man gøre det (i næsten alle sprog) sekventielt (i.e. bubble sort). Det tager n*n operationer (sammenligninger af tal) - også kaldet O(n*n). Hvis man er smart kan man gøre det O(n*log(n)) i næsten alle sprog med en Devide And Conquer algoritme (det jakob kalder concurrent) (i.e. quick sort).
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.