BigOrder is a simple tool that can be used to order objects in a manner of best to worst using user inputs. BigOrder has arisen from the innate difficulty of comparing and ranking a large set of items. With the rise of tier lists, ordering and sorting into ordered categories has become a huge part of internet culture, and in-person discussions as a whole. With that in mind, BigOrder was conceived as a way to remove the complexity from the ranking process.
Currently, BigOrder supports a StrictOrderer, where strict preferences between two items are required in order to sort elements properly. The current implementation is concurrency-friendly and also offers a reasonably low number of human comparisons, as it uses a binary selection sort.
- Sorting algorithm implementation
- StrictOrderer implementation and example usage
- PartialOrderer implementation and example usage
- JSON import of data to be sorted
- Documentation
- Tests
An orderer can be defined using the provided constructor which takes in an array of elements of the Item
type found in package items
.
The sort()
method must be called in a goroutine. The method GetNextComparison()
retrieves the next comparison to be made by the user, and SendNextComparison(higher, lower item.Item)
sends the comparison results. The handling of human comparisons can be done as a separate goroutine (see example).