Sorting algorithms/Quicksort: Difference between revisions

Content added Content deleted
(Added Oberon-2)
Line 3,732: Line 3,732:


=={{header|EasyLang}}==
=={{header|EasyLang}}==
<syntaxhighlight lang="text">data[] = [ 29 4 72 44 55 26 27 77 92 5 ]
<syntaxhighlight lang="text">
func qsort left right . d[] .
#
func qsort left right . .
while left < right
while left < right
# partition
swap data[(left + right) / 2] data[left]
piv = d[left]
mid = left
mid = left
for i = left + 1 to right
for i = left + 1 to right
if data[i] < data[left]
if d[i] < piv
mid += 1
mid += 1
swap data[i] data[mid]
swap d[i] d[mid]
.
.
.
.
swap data[left] data[mid]
swap d[left] d[mid]
#
call qsort left mid - 1
left = mid + 1
if mid < (right + left) / 2
call qsort left mid - 1 d[]
left = mid + 1
else
call qsort mid + 1 right d[]
right = mid - 1
.
.
.
.
.
func sort . d[] .
#
call qsort 0 len data[] - 1
call qsort 1 len d[] d[]
.
print data[]</syntaxhighlight>
d[] = [ 29 4 72 44 55 26 27 77 92 5 ]
call sort d[]
print d[]
</syntaxhighlight>


=={{header|EchoLisp}}==
=={{header|EchoLisp}}==