Fallið sem þið skrifið fær í DS:SI bendi á vektorinn id, sem er óupphafsstilltur N-staka vektor af 16-bita orðum, í CX er gildið N, sem er fjöldi staka í id og í DX er gildið M, sem er fjöldi samruna (e. union) sem á að framkvæma. Fallið upphafsstillir vektorinn id og uppfærir hann síðan með slembisamrunum. Slembitölurnar eru fengnar úr fallinu slembi, en það skilar 16-bita slemitölugildi sem þarf síðan að kvarða, þannig að það sé á bilinu 0 til N-1.
Hér að neðan er útgáfa af Quick-find í C++.
void QuickFind( int id[], int N, int M ) { int i, j, p, q; for( i=0; i<N; i++ ) id[i] = i; for( j=0; j<M; j++ ) { p = slmb(N); q = slmb(N); int t = id[p]; if (t == id[q]) continue; for( i=0; i<N; i++ ) if (id[i] == t) id[i] = id[q]; } }Í forritinu er gert ráð fyrir að fallið slmb(N) skili slembitölu á bilinu 0 til N-1.
Þið eigið líka að skrifa aðalforrit sem skilgreinir 10000 staka vektor og kallar síðan á QuickFind með N=10000 og M=10000. Síðan gæti forritið notað vektorinn id til að framkvæma Find-aðgerðir. Þið þurfið þó ekki að skrifa þann hluta.
Ef þið viljið ekki byrja alltaf með sama upphafsgildi í slembitölufallinu þá getið þið notað ykkur að DOS geymir 32-bita teljara í 0040:006C, sem er hækkaður 18.2 sinnum á sekúndu.
hh (hja) hi.is, 10. október, 2001.