Need to be fast, does not need the top K to be EXACT: the top K is in the top 10%(for example) percentile is fine, or the majority of it is in top 10% percentile.
The N numbers are float, N can be as big as billions, K may be just tens of thousands.
Is there any existing algorithms that can do this? Preferably with a probability that can describe how the K number set in the top 10% percentile.
Let us first assume that we know the distribution of the $N$ numbers. All we really need is the $90^{th}$ percentile point. Once we have that, we can just look through the numbers until we find $K$ greater than that, which requires looking at $10K$ numbers on average.
Now the question comes down to taking a sample that finds the $90^{th}$ percentile point accurately enough for our purposes. The simple answer is that takes (essentially) a constant number of samples, not growing with $K$ or $N$, so we don't care about it because for large $K,N$ the previous search will dominate.
A simple answer then is to look at a bunch of numbers and find the $95$ percentile point, then look through collecting numbers greater than that until you get $K$ of them. This is linear in $K$. Your collection will satisfy the request unless the measured $95^{th}$ percentile is in fact lower than the real $90^{th}$ percentile and you find a number between the two among your $K$ samples.