46 lines
515 B
Plaintext
46 lines
515 B
Plaintext
|
|
fun copy(L)
|
|
{
|
|
L2 = [];
|
|
|
|
i = 0;
|
|
while i < count(L):
|
|
{
|
|
L2[i] = L[i];
|
|
i = i + 1;
|
|
}
|
|
|
|
return L2;
|
|
}
|
|
|
|
fun bubble_sort(L, less)
|
|
{
|
|
if less == none:
|
|
fun less(a, b) return a < b;
|
|
|
|
L = copy(L);
|
|
|
|
do
|
|
{
|
|
swapped = false;
|
|
|
|
i = 0;
|
|
while i < count(L)-1 and not swapped:
|
|
{
|
|
if less(L[i+1], L[i]):
|
|
{
|
|
swapped = true;
|
|
tmp = L[i+1];
|
|
L[i+1] = L[i];
|
|
L[i] = tmp;
|
|
}
|
|
i = i + 1;
|
|
}
|
|
}
|
|
while swapped;
|
|
|
|
return L;
|
|
}
|
|
|
|
|
|
print(bubble_sort([3, 2, 1, 6, 0-2])); |