02.09.2013 Views

Sorteren Sorteren door selectie

Sorteren Sorteren door selectie

Sorteren Sorteren door selectie

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

De functie:<br />

void bubble( int a [ ] , int n)<br />

{<br />

}<br />

int i , j ;<br />

int x ;<br />

for ( i =2; i=i ; j −−)<br />

{<br />

}<br />

if ( a [ j −1] > a [ j ] )<br />

{<br />

}<br />

x = a [ j −1]; a [ j −1] = a [ j ] ; a [ j ] = x ;<br />

Een verdeel-en-heers techniek<br />

Het principe: verdeel de verzameling objecten in twee delen en sorteer deze<br />

twee delen onafhankelijk van elkaar.<br />

Quicksort ( a, l, r)<br />

{<br />

indien meerdere elementen in {al, . . ., ar}<br />

{<br />

verdeel {al, . . .,ar} in een links en een rechts deel;<br />

(gebruik makend van een pivot element)<br />

Quicksort het linkse deel;<br />

Quicksort het rechtse deel;<br />

}<br />

}<br />

De verdeling moet gebeuren zodat<br />

+ het pivot element ai bevindt zich op zijn uiteindelijke plaats i;<br />

+ al de elementen in {al, . . .,ai−1} zijn kleiner dan of gelijk aan ai;<br />

+ al de elementen in {ai+1, . . .,ar} zijn groter dan of gelijk aan ai.<br />

Voorbeeld:<br />

l<br />

De functie:<br />

(l+r)<br />

2<br />

r<br />

1 4 8 44 55 12 42 94 18 6 67<br />

1 2 3 6 18 12 42 94 55 44 67<br />

1 1 2 6 12 18 42 94 55 44 67<br />

5 6 8 6 12 18 42 94 55 44 67<br />

7 7 8 6 12 18 42 44 55 94 67<br />

6 12 18 42 44 55 67 94<br />

void quicksort ( int a [ ] , int l , int r )<br />

{<br />

int i , j ;<br />

int x , w;<br />

i = l ;<br />

j = r ;<br />

x = a [ ( l+r )/2 ] ;<br />

do<br />

{<br />

while ( a [ i ] < x )<br />

i++ ;<br />

while ( a [ j ] > x )<br />

j−− ;<br />

if ( i

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!