> M�ske kunne vi bruge tr�sorteringen som et eksempel p�, hvordan man
> kunne lave det, hvis det drejer sig om at kunne finde sine data
> hurtigt igen.

Mja, jeg ville nu foretr�kke quicksort, ogs� fordi den jo er s�rdeles
kendt - det er den man faktisk (i lettere modificeret udgave) bruger.

> Apropos pointere: kan du f� gdb til at vise indholdet af et element?
> Hvis jeg pr�ver med 'print Element->Naeste' brokker den sig over at
> der ikke er noget 'medlem' der hedder 'naeste', 'Naeste' eller hvad
> jeg nu pr�ver med.

Tja, det er lang tid siden jeg sidst har pr�vet at bruge gdb, og
dengang var det kun overfladisk. Jeg plejer at klare mig med at
udskrive henvisningsv�rdierne undervejs ved at tilf�je sm� kald i
koden.

I anledning af at det lykkedes mig at blive f�rdig med den sidste
fysikrapport i l�bet af blot 5/2 timer, har jeg kigget lidt p� din
kode. Jeg m� tilst� at jeg ikke umiddelbart forst�r den helt - det ser
ud til at du fors�ger at flytte elementerne om bag pivoten i den samme
liste hver gang et element er st�rre? Er det af optimeringshensyn?

I s� fald vil jeg lige benytte lejligheden til at tr�kke et citat af
Don Knuth ud af �rmet, "premature optimization is the root of all
evil" (idet det godt nok ikke helt er t�nkt brugt i denne sammenh�ng,
men det beh�ver I jo ikke at vide ;-).

Jeg tror det smarteste er at skrive algoritmen om til noget i denne
retning:

  pivotsortering:
    st�rre = nil
    lavere = nil
    pivot = find_pivot

    l�b alle elementerne igennem
      hvis st�rre end pivots n�gle
        anbring i st�rre   { husk at tilfoej_element kan bruges }
      ellers
        anbring i lavere

    kald pivotsortering med st�rre
    kald pivotsortering med lavere

    return�r liste sammensat af lavere, pivot og st�rre

hvor

  find_pivot:
    return�r f�rste element

i f�rste omgang. Trinet med at sammens�tte den endelige liste ud af
pivotelementet og de to andre lister b�r nok udarbejdes i en s�rskilt
rutine af overskuelighedshensyn (en rutine b�r kun g�re ca. en ting).

Er dette ikke lettere at g� til? N�r dette virker, kan vi s� senere
optimere p� det - det kunne jo faktisk v�re smukt at give et rids over
forfinelsen fra dette f�rste udkast til den endelige version (m�ske
bliver det for langt med kode i rapporten, men s� m�ske med
pseudokode).

Jeg evt. skrive koden til denne udgave, det er ikke noget problem, men
jeg t�nkte at det ville fjerne det sjove ved. Men skal jeg alligevel?

-- 
Ole Laursen 
http://sunsite.dk/olau/

Besvar via email