sorting-network
Visual-Representation-of-Sorting-Algorithms
sorting-network | Visual-Representation-of-Sorting-Algorithms | |
---|---|---|
2 | 1 | |
16 | 1 | |
- | - | |
0.0 | 6.3 | |
over 1 year ago | 9 months ago | |
Python | Python | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sorting-network
-
Sorting networks and their applications (1968) [pdf]
I find sorting networks to be fascinating.
Beyond 8 inputs, there isn’t a pattern to follow to construct the optimal sorting network, and there are only “best known” sorting networks (but not proven to be optimal) for networks beyond 11 inputs.
Unintuitively, the optimal sorting network for, let’s say, 16 inputs is not just an iteration on the optimal sorting network for 15 inputs. So you can’t just build upon what was optimal for a smaller sorting network to get thwart is optimal for a larger sorting network.
I’ve spent more time than I probably should have several years ago experimenting with various genetic algorithms to construct sorting networks for 14, 15, and 16 inputs. It was a fun challenge and learning experience though.
Here is a little utility I wrote in Python to check whether a comparison network is a sorting network and can generate diagrams for them in svg format.
https://github.com/brianpursley/sorting-network
- Program to list 5 numbers in ascending order
Visual-Representation-of-Sorting-Algorithms
What are some alternatives?
Jellybeans - A comprehensive Data Structure package
Competitive-Python - Python Algorithms Package used in competitive programming
Python_Sorting_Algorithms - Python - Sorting Algorithms
TheAlgorithms - All Algorithms implemented in Python