Quickselect algorithm: Difference between revisions

m (syntax highlighting fixup automation)
Line 2,076:
 
=={{header|EasyLang}}==
<syntaxhighlight lang="text">func qselect k d[] . res .
func qselect k . list[] res .
#
subr partition
mid = left
for i = left + 1 to right
if dlist[i] < dlist[left]
mid += 1
swap dlist[i] dlist[mid]
.
.
swap dlist[left] dlist[mid]
.
rightleft = len d[] - 1
right = len list[]
repeat
while left < right
call partition
until mid = k
if mid < k
left = mid + 1
elseelif mid > k
right = mid - 1
else
left = right
.
.
res = dlist[k]
.
d[] = [ 9 8 7 6 5 0 1 2 3 4 ]
for i range= 1 to len d[]
call qselect i d[] r
print r
2,041

edits