나는 을 가지고 있는데, 여기에 A
의 개체는 고유하며 B
의 개체는 고유하지 않습니다.스왑의 복잡성 C#의 사전 형식 인수
데이터를 B
의 개체별로 그룹화하려고합니다.
예.
Dictionary<A,B> input = GenerateInput();
List<IGrouping<B,A>> output = input
.GroupBy(pair => pair.Value, pair => pair.Key)
.ToList();
- 접근 방식의 복잡성은 무엇입니까? O (n)? 복잡성 = GroupBy 작업의 복잡성 - 값을 찾지 못했습니다. 제발 말해서 기사에 대한 링크를 제공하십시오.
- 이 스와핑을 더 효율적으로/우아한 방법으로 할 수 있습니까?
추신. 변수 input
과 output
을 명시 적으로 작성하여 output
이 Dictioany<,>
일 필요가 없음을 보여줍니다. 컨테이너가 A
B
에 의해 이동해야합니다.
GroupBy는 O (n) 연산입니다. 연산 모드는 룩업 (키마다 여러 값을 허용하는 사전 형 컨테이너)을 작성하는 사전을 작성하는 것과 매우 유사하므로 요소 당 삽입이 ~ O (1)이며 그룹을 산출하기 위해 열거됩니다. – spender