Lemmings.world
  • Communities
  • Create Post
  • Create Community
  • heart
    Support Lemmy
  • search
    Search
  • Login
  • Sign Up
JPDev@programming.dev to Programmer Humor@programming.dev · 1 年前

Returns a sorted list in O(1) time

programming.dev

message-square
25
link
fedilink
239

Returns a sorted list in O(1) time

programming.dev

JPDev@programming.dev to Programmer Humor@programming.dev · 1 年前
message-square
25
link
fedilink
alert-triangle
You must log in or register to comment.
  • Rikudou_SageA
    link
    fedilink
    arrow-up
    87
    ·
    1 年前

    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.@aussie.zone
      link
      fedilink
      arrow-up
      36
      ·
      edit-2
      1 年前

      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_SageA
        link
        fedilink
        arrow-up
        23
        ·
        1 年前

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

        • Dave.@aussie.zone
          link
          fedilink
          arrow-up
          6
          ·
          1 年前

          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@midwest.social
        link
        fedilink
        English
        arrow-up
        5
        ·
        1 年前

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

        • xmunk@sh.itjust.works
          link
          fedilink
          arrow-up
          1
          ·
          1 年前

          This is a power(ful) idea.

          Are my stats/programmers in the house?

      • fibojoly@sh.itjust.works
        link
        fedilink
        arrow-up
        4
        ·
        1 年前

        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.

    • itslilith@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      16
      ·
      1 年前

      asymptotically this is 100% correct!

      • mumblerfish@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        1 年前

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

        • itslilith@lemmy.blahaj.zone
          link
          fedilink
          arrow-up
          16
          ·
          1 年前

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

    • xmunk@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      ·
      1 年前

      deleted by creator

    • asudox@lemmy.world
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      1 年前

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

      • Rikudou_SageA
        link
        fedilink
        English
        arrow-up
        7
        ·
        1 年前

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

      • andnekon@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        1 年前

        50/50 would be for isOdd with the same implementation

  • YaBoyMax@programming.dev
    link
    fedilink
    English
    arrow-up
    33
    ·
    1 年前

    Lossy sort

  • xmunk@sh.itjust.works
    link
    fedilink
    arrow-up
    32
    ·
    1 年前

    Copilot is fucking killing it these days.

  • Jakylla@sh.itjust.works
    link
    fedilink
    arrow-up
    25
    ·
    1 年前

    inplace sort be like:

    def sort(list: list):
        list.clear()
    
  • TheBananaKing@lemmy.world
    link
    fedilink
    arrow-up
    18
    ·
    1 年前

    https://xkcd.com/221/

  • Trailblazing Braille Taser@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    11
    ·
    1 年前

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

    • infinitepcg@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      1 年前

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

    • Species5218@sh.itjust.works
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      1 年前

      That is a type hint

      • Trailblazing Braille Taser@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        2
        ·
        1 年前

        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
        
  • mcmodknower@programming.dev
    link
    fedilink
    arrow-up
    6
    ·
    1 年前

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

    • murtaza64@programming.dev
      link
      fedilink
      arrow-up
      11
      ·
      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

      • xmunk@sh.itjust.works
        link
        fedilink
        arrow-up
        5
        ·
        1 年前

        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.

  • SzethFriendOfNimi@lemmy.world
    link
    fedilink
    arrow-up
    7
    arrow-down
    1
    ·
    edit-2
    1 年前

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

Programmer Humor@programming.dev

programmer_humor@programming.dev

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: !programmer_humor@programming.dev

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
Visibility: Public
globe

This community can be federated to other instances and be posted/commented in by their users.

  • 1.83K users / day
  • 4.87K users / week
  • 8.01K users / month
  • 20.2K users / 6 months
  • 110 local subscribers
  • 25K subscribers
  • 1.57K Posts
  • 57.4K Comments
  • Modlog
  • mods:
  • Feyter@programming.dev
  • adr1an@programming.dev
  • BurningTurtle@programming.dev
  • Pierre-Yves Lapersonne@programming.dev
  • BE: 0.19.11
  • Modlog
  • Instances
  • Docs
  • Code
  • join-lemmy.org