Returns a sorted list in O(1) time

JPDev@programming.dev to Programmer Humor@programming.dev – 279 points –
27

While this doesn't work all the time, when it does, it's really fast. Similar to the isPrime function, it's correct most of the time and is much faster than alternative implementations:

function isPrime(number) {
    return false;
}

What your code can do is run this first and if it returns false then do a quick double check using a traditional isPrime function. Really speeds things up!

I mean, it has a 99.999%+ success rate on a large enough sample and I can live with that.

Nah, you've always got to check the corner cases. It's a variation on Murphy's Law - you don't encounter corner cases when you're developing a program but corner cases are 99 percent of an everyday user's interaction.

Better. Return true if the number is in a stored list of known primes, otherwise return false right away. But then, start a separate thread with an actual verification algorithm. When the verification is done, if it was actually a prime number, you just crash the program with a WasActuallyPrime exception.

1 more...

Besides the obvious flaws... is that parameter a list named list, shadowing the list() constructor?

It works as long as you don't call list() within that function.

you can even have a case where you return the first element of the list if the list is not empty, and it will still be O(1).

you can make it sort the first k elements and it will still be O(1). Set k high enough and it might even be useful

I set k to 50,000,000,000... that's more items than my shitty computer can fit in memory (including swsp) but I am now happy to celebrate my O(1) algorithm.

By that logic, any sorting implementation is O(1), as the indexing variable/address type has limited size