Data update
This commit is contained in:
parent
4d5544505c
commit
4924dd0264
3073 changed files with 55820 additions and 4408 deletions
|
|
@ -0,0 +1,25 @@
|
|||
!YS-v0
|
||||
|
||||
v =: +[9 8 7 6 5 0 1 2 3 4]
|
||||
|
||||
defn main():
|
||||
say:
|
||||
map \(quickselect v _):
|
||||
v.#:range
|
||||
|
||||
defn quickselect(a k):
|
||||
loop arr a:V, current-k k:
|
||||
pivot-idx =: arr.#:rand-int
|
||||
pivot =: arr.$pivot-idx
|
||||
remaining =:
|
||||
concat subvec(arr 0 pivot-idx):
|
||||
subvec(arr pivot-idx.++)
|
||||
left =: remaining.filter(\(_ < pivot))
|
||||
right =: remaining.filter(\(_ >= pivot))
|
||||
left-count =: left.#
|
||||
cond:
|
||||
current-k == left-count: pivot
|
||||
current-k < left-count:
|
||||
recur: left:V current-k
|
||||
else:
|
||||
recur right:V: (current-k - left-count).--
|
||||
Loading…
Add table
Add a link
Reference in a new issue