내가하려는 것은 NP 완료 문제에 대한 경험적 접근법을 구현하는 것입니다. 객체의 목록 (일치)에 각각 두 가지 점수가 있습니다. 목록의 첫 번째 요소를 점수 desc로 정렬 한 다음 목록에서 제거합니다. 그런 다음 첫 번째 요소에 바인딩 된 모든 요소가 제거됩니다. 나는 더 이상 요소가 없을 때까지 목록을 반복합니다.SortedHashTable in C#
는 그래서 기본적으로 다음과 같은 특성 ahve해야 효율적으로이 문제를 해결할 수있는 데이터 구조가 필요
1. 일반 항상
3. 빠른 키 액세스를 가지고 분류되어
2
지금은 SortedSet<T>
이 가장 적합하게 보입니다.
질문은 : 내 경우에는 가장 적합한 선택입니까? 내가 필요로 무엇
List result = new List();
while (sortedItems.Any())
{
var first = sortedItems.First();
result.Add(first);
sortedItems.Remove(first);
foreach (var dependentFirst in first.DependentElements)
{
sortedItems.Remove(dependentFirst);
}
}
은 정렬 된 해시 테이블 같은 것입니다. 힙 및 세트 - - 정렬 된 항목을 유지하기 위해 힙, 삭제 된 항목을 유지하기 위해 설정 메신저 실수하지 않으면
목록의 첫 번째 요소에 어떤 요소가 바인딩되어 있습니까? 이 바인딩을 어떻게 유지합니까? – zmbq
사전을 사용합니다. so happied anything :( – BanditoBunny
분명히 당신은 모든 제거 된 아이템으로 무언가를하거나 처음에 sortedItem을 지울 수 있습니다 ... – zmbq