Open
Description
In the (only) implementation of XCTAssertUnorderedEqualSequences
(where elements are Equatable
), it converts the sequence into an Array
. Then it iterates through the second sequence, calling firstIndex(of:)
on the first array (O(n)), which totals to O(n2). If a Set
were used (when the elements are Hashable
), then getting the index of an element is O(1), which would make the total algorithmic complexity O(n).
Expected behavior
XCTAssertUnorderedEqualSequences
is O(n) when Element: Hashable
Actual behavior
XCTAssertUnorderedEqualSequences
is O(n2) when Element: Hashable
Metadata
Metadata
Assignees
Labels
No labels
Activity
mdznr commentedon Dec 21, 2021
Introduced with commit ca8af77
XCTAssertUnorderedEqualSequences
: Improve algorithmic complexity when elements areHashable
(Resolves #176) #177