Open
Conversation
As all comparisons are logged, we don't need to call lst.log() from the sorting algorithms anymore (which is good, as they can now be reused for other things than visualization as well). Also using new-style classes now. Timsort needed special treatment, as access to the lst while lst.sort() runs is denied (pointers get set to []). The existing workaround was adapted. Sortable was renamed into Comparator (seemed like a more appropriate name to me). TrackList.wrap was renamed and modified into setComparator, which now allows to substitute the existing comparator wrapper (or wrap it again), giving more direct control of what happens (e.g., used in TimComparator).
… with the same index (e.g., if lst[i] <= lst[i])
…y comparison and swap in several sorting algorithms.
…runs (e.g. for averaging would start with old TimComparator.limit values otherwise).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi again,
i created a branch which logs the lists whenever a comparison occurs and also keeps track of which items were compared.
Currently I did a quick & dirty visualization with scipy, and matplotlib. It's still able to "compress" the graphs as your version does.
I commented out all the explicit lst.log() in the sorting algorithms, as I think they're not needed anymore + the algorithms may now be used for other things as well.
I also noticed that the quicksort implementation does quite a couple of useless comparisons (of items with the same index).
Maybe this should stay in a branch for now, as I don't have time to check all aftermaths atm.
Jörn