Use this tag with questions about the Quickselect algorithm, an algorithm to find the nth smallest member in a list.
Questions tagged [quickselect]
85 questions
312
votes
33 answers
Write a program to find 100 largest numbers out of an array of 1 billion numbers
I recently attended an interview where I was asked "write a program to find 100 largest numbers out of an array of 1 billion numbers."
I was only able to give a brute force solution which was to sort the array in O(nlogn) time complexity and take…

userx
- 3,713
- 5
- 32
- 38
32
votes
6 answers
QuickSelect Algorithm Understanding
I've been poring over various tutorials and articles that discuss quicksort and quickselect, however, my understanding of them is still shaky.
Given this code structure, I need to be able to grasp and explain how quickselect works.
// return the kth…

Edge
- 2,456
- 6
- 32
- 57
17
votes
4 answers
Quickselect time complexity explained
From https://en.wikipedia.org/wiki/Quickselect it says
"However, instead of recursing into both sides, as in quicksort, quickselect only recurses into one side – the side with the element it is searching for. This reduces the average complexity from…

ealeon
- 12,074
- 24
- 92
- 173
7
votes
1 answer
Quick select with repeat values
Is it possible to perform searching kth elment in O(n) over multiset (values can repeat)?
Because as far as I understand the idea of quick select I have to partition input using some pivot. Then I have 2 arrays, which I choose for recursive…

abc
- 2,371
- 3
- 25
- 36
6
votes
1 answer
"quick select" (or similar) implementation on Linux? (instead of sort|uniq -c|sort -rn|head -$N)
PROBLEM: Frequently I face a need to see what are the most-frequently-repeated "patterns" within last day of specific logs. Like for a small subset of tomcat logs here:
GET /app1/public/pkg_e/v3/555413242345562/account/stats 401 954 5
GET…

Vlad
- 1,157
- 8
- 15
4
votes
1 answer
numpy.partition in JavaScript
Is there a readily available equivalent to numpy.partition in JavaScript, via a library or built in?
It does not seem like any of the popular relevant libraries such as underscore.js provide such a function. I am asking because I would like to be…

Mad Physicist
- 107,652
- 25
- 181
- 264
4
votes
1 answer
Efficient algorithm of partial sorting into N unsorted groups
I'm looking for an efficient algorithm to perform the following: given an array of N items, sort it in a way so that items come as M equal groups, where each group is unsorted, but groups are sorted between each other (all elements in one group are…

Mourner
- 3,171
- 24
- 21
3
votes
2 answers
Fastest way to multithread doing quickselect on all columns or all rows of a matrix in Rcpp - OpenMP, RcppParallel or RcppThread
I was using this Rcpp code to do a quickselect on a vector of values, i.e. obtain the kth largest element from a vector in O(n) time (I saved this as qselect.cpp):
// [[Rcpp::depends(RcppArmadillo)]]
#include
using namespace…

Tom Wenseleers
- 7,535
- 7
- 63
- 103
2
votes
1 answer
How to implement duplicates in QuickSelect
I have made the quick select algorithm, which is to find the kth smallest number in an array. My problem is, it only works with an array without duplicates.
If I have an array
arr = {1,2,2,3,5,5,8,2,4,8,8}
It will say that the third smallest…
user7722505
2
votes
1 answer
quick select is not working for all indexes
I am trying to implement quick select referring to a algorithm given in the following link
http://www.cs.yale.edu/homes/aspnes/pinewiki/QuickSelect.html
But the program crashes for many k values, and works fine for only few. Kindly guide me where i…

user2805439
- 45
- 1
- 6
2
votes
1 answer
QuickSelect vs. linear search
I am wondering why QuickSelect is supposed to be such a good performing algorithm for finding
an arbitrary element out of an n-sized, unsorted set. I mean, when you go through all elements one by one, until you find the desired one it took O(n)…

wodzu
- 3,004
- 3
- 25
- 41
2
votes
1 answer
can we prove that the algorithm to extarct the median must partition the set?
Extracting the median of, say, 51 element, consists of splitting the 51 in a H(ead) group of 25, followed by the median, followed by a T(ail) of 25. All the algorithms that I know end up with the additional property that H and T are such that…

quickbug
- 4,708
- 5
- 17
- 21
2
votes
1 answer
interpreting a laconic ruby 'nil' error
I've been at this for a couple of days now, and I can't crack this error:
[3] pry(main)> my_list = (1..10).to_a.sample(10)
=> [3, 5, 9, 2, 7, 6, 10, 4, 1, 8]
[4] pry(main)> linear_select(my_list,4)
NoMethodError: undefined method `-' for…

bright-star
- 6,016
- 6
- 42
- 81
1
vote
1 answer
OutOfMemoryError when trying to find the largest kth element in a large array
I am trying to solve a task that asks me to find the largest kth element in an unsorted array of length n (n might be as large as 5,000,000; elements in the array are distinct). Due to the task limits, I cannot use any sorting method, PriorityQueue,…

user18512699
- 11
- 1
1
vote
0 answers
Divide an array into 2 subarray considering keys and weights
Let there be an array A with n elements.
Every element in A has a key, and a weight.
Divide A into 2 subarrays (does not have to be of equal size),
where every key in group 1 is smaller than every key in group 2,
and the total weight of both…

Nati Shen-Gordon
- 25
- 5