[#77789] [Ruby trunk Feature#12012] Add Boolean method — prodis@...
Issue #12012 has been updated by Fernando Hamasaki de Amorim.
4 messages
2016/10/27
[ruby-core:77594] [Ruby trunk Feature#12810] Improve `Set#find_index` performance
From:
ruby@...
Date:
2016-10-11 19:48:38 UTC
List:
ruby-core #77594
Issue #12810 has been updated by Herwin W.
Quoting the first line of http://ruby-doc.org/stdlib-2.3.1/libdoc/set/rdoc/Set.html:
> Set implements a collection of unordered values
This would mean the set {1,2,3} is exactly the same as the sets {1,3,2}, {2,1,3}, {2,3,1}, {3,1,2} and {3,2,1}. This is a property of the mathematical concept of sets (see https://en.wikipedia.org/wiki/Set_%28mathematics%29, which also describes the order of the items as being irrelevant). So actually, I don't see how using Set#find_index would make any sense. The current implementation just accidentally preserves the order of the items in the set via undocumented behaviour, relying on that would be scary.
----------------------------------------
Feature #12810: Improve `Set#find_index` performance
https://bugs.ruby-lang.org/issues/12810#change-60863
* Author: Thomas Charbonnel
* Status: Open
* Priority: Normal
* Assignee:
----------------------------------------
Hello everyone!
I've toyed a bit with the `Set` class lately and have found some performance issues with method `find_index`. Github gist here: https://gist.github.com/thomascharbonnel/f023ca137f2b2b7021cbe2d580485cd4
I'm thinking it would be possible to add an index as default value for each new item of `Set` (instead of a boolean like now), `find_index` would then be executed in O(1).
I can attach a patch in a few days if everybody is cool with the idea.
Thanks!
Thomas.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>