Complexity nomenclature

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Fri Dec 4 06:04:46 PST 2015


On 12/04/2015 03:41 AM, Jakob Ovrum wrote:
> On Friday, 4 December 2015 at 06:05:55 UTC, Tofu Ninja wrote:
>> When would a generic algorithm even need to know the complexity of the
>> container?
>
> A generic algorithm that uses exponential time when given the "wrong"
> inputs is a hidden danger. This can easily happen when composing with
> linear algorithms. This naming scheme, also employed by std.container,
> prevents this.
>
>> Also maybe a simpler idea would just be to annotate the the operations
>> with there complexity with UDAs. That way things that really care
>> about the complexity can get it, and those who don't can ignore it. It
>> has the benefit of being self documenting as well.
>
> If you don't care about the complexity, why are you using collections?
> Just use T[] and T[U]. Surely choosing a data structure is all about
> complexity (barring some details like optimizing for cache locality or
> small data structures).

WORD! -- Andrei



More information about the Digitalmars-d mailing list