Skip to content

Conversation

@joernhees
Copy link
Contributor

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

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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant