Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
19
Task/Quickselect-algorithm/Nim/quickselect-algorithm.nim
Normal file
19
Task/Quickselect-algorithm/Nim/quickselect-algorithm.nim
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
proc qselect[T](a: var openarray[T]; k: int, inl = 0, inr = -1): T =
|
||||
var r = if inr >= 0: inr else: a.high
|
||||
var st = 0
|
||||
for i in 0 .. < r:
|
||||
if a[i] > a[r]: continue
|
||||
swap a[i], a[st]
|
||||
inc st
|
||||
|
||||
swap a[r], a[st]
|
||||
|
||||
if k == st: a[st]
|
||||
elif st > k: qselect(a, k, 0, st - 1)
|
||||
else: qselect(a, k, st, inr)
|
||||
|
||||
let x = [9, 8, 7, 6, 5, 0, 1, 2, 3, 4]
|
||||
|
||||
for i in 0..9:
|
||||
var y = x
|
||||
echo i, ": ", qselect(y, i)
|
||||
Loading…
Add table
Add a link
Reference in a new issue