バブルソートのプログラム sort.rr は次の二つの関数 bubleSort と testBuble からなる.
def bubleSort(AnArray) {
Size = size(AnArray)[0];
for (J=Size-1; J>0; J--) {
for (I=0; I<J; I++) {
if (AnArray[I] > AnArray[I+1]) {
Tmp = AnArray[I+1];
AnArray[I+1] = AnArray[I];
AnArray[I] = Tmp;
}
}
}
}
def testBuble(N) {
A = newvect(N);
for (I=0; I<N; I++) {
A[I] = random() % 100;
}
/* print(A); */
tstart();
bubleSort(A);
tstop();
/* print(A); */
}
end$
クイックソートのプログラム sort2.rr は次の二つの関数 quickSort と testQuick からなる.
def quickSort(A,P,Q) {
if (Q-P < 1) return;
Mp = idiv(P+Q,2);
M = A[Mp];
B = P; E = Q;
while (1) {
while (A[B] < M) B++;
while (A[E] > M && B <= E) E--;
if (B >= E) break;
else {
Tmp = A[B];
A[B] = A[E];
A[E] = Tmp;
E--;
}
}
if (E < P) E = P;
quickSort(A,P,E);
quickSort(A,E+1,Q);
}
def testQuick(N) {
A = newvect(N);
for (I=0; I<N; I++) {
A[I] = random() % 100;
}
/* print(A);*/
tstart();
quickSort(A,0,N-1);
tstop();
/* print(A); */
}
end$