RosettaCodeData/Task/Quickselect-algorithm/EasyLang/quickselect-algorithm.easy

31 lines
541 B
Text
Raw Permalink Normal View History

2025-06-11 20:16:52 -04:00
func qselect &list[] k .
2023-07-01 11:58:00 -04:00
#
subr partition
mid = left
for i = left + 1 to right
if list[i] < list[left]
mid += 1
swap list[i] list[mid]
.
.
swap list[left] list[mid]
.
left = 1
right = len list[]
while left < right
2023-09-16 17:28:03 -07:00
partition
2023-07-01 11:58:00 -04:00
if mid < k
left = mid + 1
elif mid > k
right = mid - 1
else
left = right
.
.
2025-06-11 20:16:52 -04:00
return list[k]
2023-07-01 11:58:00 -04:00
.
d[] = [ 9 8 7 6 5 0 1 2 3 4 ]
for i = 1 to len d[]
2025-06-11 20:16:52 -04:00
print qselect d[] i
2023-07-01 11:58:00 -04:00
.