halubilo.social
  • Communities
  • Create Post
  • Create Community
  • heart
    Support Lemmy
  • search
    Search
  • Login
  • Sign Up
@[email protected] to Programmer [email protected] • 1 year ago

Returns a sorted list in O(1) time

programming.dev

message-square
27
fedilink
280

Returns a sorted list in O(1) time

programming.dev

@[email protected] to Programmer [email protected] • 1 year ago
message-square
27
fedilink
alert-triangle
You must log in or register to comment.
  • Rikudou_Sage
    link
    fedilink
    97•1 year ago

    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;
    }
    
    • Dave.
      link
      fedilink
      36•
      edit-2
      1 year ago

      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!

      • Rikudou_Sage
        link
        fedilink
        25•1 year ago

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

        • Dave.
          link
          fedilink
          6•1 year ago

          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.

      • Doc Avid Mornington
        link
        fedilink
        English
        5•1 year ago

        Good idea, but it would be much faster if you do the double-check on true instead.

        • @[email protected]
          link
          fedilink
          1•1 year ago

          This is a power(ful) idea.

          Are my stats/programmers in the house?

      • @[email protected]
        link
        fedilink
        4•1 year ago

        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.

    • @[email protected]
      link
      fedilink
      16•1 year ago

      asymptotically this is 100% correct!

      • @[email protected]
        link
        fedilink
        5•1 year ago

        What would be the accuracy on something like a 64bit unsigned integer?

        • @[email protected]
          link
          fedilink
          17•1 year ago

          WolframAlpha estimates PrimePi[2^64-1] to be about 4.15829E17, so about 97.7%

    • asudox
      link
      fedilink
      2•1 year ago

      50/50 chance of being right in O(1) time

      • Rikudou_Sage
        link
        fedilink
        English
        8•1 year ago

        It’s right much more often than just 50/50.

      • @[email protected]
        link
        fedilink
        5•1 year ago

        50/50 would be for isOdd with the same implementation

      • @[email protected]
        link
        fedilink
        3•1 year ago

        Primes are not that common especially as numbers get bigger.

        It’ll be right the vast majority of times.

    • @[email protected]
      link
      fedilink
      2•1 year ago

      deleted by creator

  • @[email protected]
    link
    fedilink
    English
    36•1 year ago

    Lossy sort

  • @[email protected]
    link
    fedilink
    35•1 year ago

    Copilot is fucking killing it these days.

  • Jakylla
    link
    fedilink
    27•1 year ago

    inplace sort be like:

    def sort(list: list):
        list.clear()
    
  • @[email protected]
    link
    fedilink
    21•1 year ago

    https://xkcd.com/221/

  • Trailblazing Braille Taser
    link
    fedilink
    11•1 year ago

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

    • @[email protected]
      link
      fedilink
      5•1 year ago

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

    • @[email protected]
      link
      fedilink
      -2•1 year ago

      That is a type hint

      • Trailblazing Braille Taser
        link
        fedilink
        3•1 year ago

        Well duh. I wonder what happens if you shadow the list constructor and try to use it as a type hint…

        def foo(list: list):
          def bar(thingies: list):
            pass
        
  • @[email protected]
    link
    fedilink
    9•1 year ago

    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).

    • @[email protected]
      link
      fedilink
      12•1 year ago

      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

      • @[email protected]
        link
        fedilink
        5•1 year ago

        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.

      • KubeRoot
        link
        fedilink
        1•1 year ago

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

  • @[email protected]
    link
    fedilink
    7•
    edit-2
    1 year ago

    Honey, wake up. The new Def Leppard Album just dropped

Programmer [email protected]

[email protected]

Subscribe from Remote Instance

Create a post
You are not logged in. However you can subscribe from another Fediverse account, for example Lemmy or Mastodon. To do this, paste the following into the search field of your instance: [email protected]

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics
  • 459 users / day
  • 3.58K users / week
  • 8.4K users / month
  • 19.1K users / 6 months
  • 24.7K subscribers
  • 1.54K Posts
  • 55.2K Comments
  • Modlog
  • mods:
  • Feyter
  • adr1an
  • @[email protected]
  • Pierre-Yves Lapersonne
  • BE: 0.19.3
  • Modlog
  • Instances
  • Docs
  • Code
  • join-lemmy.org