1. 13

Specifically sharing for the “here’s a valid use-case for bubble sort” bit.

  1.  

  2. 4

    Yeah, that was neat. Here I had been taught to think it was useless except as an ideal-to-understand method we knock down with QuickSort or HeapSort. The top answer was great. I’ll further highlight in today’s constraints that algorithms might differ on how easy it is to get parallelism, strong consistency if concurrent/distributed, hardware acceleration, or strong verification. What’s good for fast, sequential processors with a pile of cache might not be good if any of those are suddenly important. Esp sequential vs parallel (obvious) or hardware acceleration (hardware is itself inherently parallel). The amount of pointer manipulation an algorithm requires can also heavily impact ease of verification. Maybe consistency.

    1. 2

      We learn algorithms to learn different approaches to solving problems. The more you see, the larger your repertoire of thought tools. A bonus is that when a new “better” algorithm is devised, knowing how it varies from the last “best one” or a previous “best one” is easier.