나는 다음과 같은 항목이 예를 들어, 키 - 값 쌍의 정렬 된 세트를 가지고 : 나는 빠른 조회를하고 싶은A는 사전 정렬 된 다음 키
1 "one"
2 "two"
4 "four"
50 "fifty"
(그래서 int
키가 주어진다면, 그 키의 값을 찾고 싶습니다.) 또한, 현재 키에서 사전의 다음 키를 찾는 빠른 방법을 가지고 있습니다 - 따라서 2
키가 있으면 다음 키가 4
, 그 다음 50
.
저는 사전이 첫 번째 부분을 빠르게 처리하고 두 번째 부분의 링크드 목록과 같은 것을 알고 있습니다 (그러나 특정 키에서 시작하려면 '들어가기'어렵습니다).
나는 모양이 here이었습니다. 그리고이 중 일부는 정렬 된 사전으로 가능할 수도 있습니다. 나는 C#에서 이러한 것들을 모두 수행하는 좋은 데이터 구조가 있는지 궁금해했다. (키에 의한 검색과 다음 키로 이동)?
매우 큰 항목 (수천 개)이 필요하지는 않지만 가능한 많은 수의 조회를 수행하고 신속하게 키 사이를 이동하려고합니다 (5 번, 6, 7 ...이 사전에 있음).
사전에 이미 키 모음이 있습니다. http://stackoverflow.com/questions/4720674/how-do-i-get-previous-key-from-sorteddictionary – Florian
사전에 이미 키 모음이 있습니다. 키를 반복하면됩니다. 'foreach (dict.Keys의 var 키)' –
SortedDictionary 나 SortedList와 같은 단일 데이터 유형이 도움이되지 않으면 두 개의 개별 구조에 데이터를 저장하는 것이 가장 좋을 수 있으며 최적 병법. 이것은 최신 정보를 유지하는 데 드는 비용을 증가시킵니다. @ M.kazemAkhgary 그는 전체 수집 루프를 수행하는 것보다 단지'int 2'를 사용하여 함수를 입력하는 것을 최적화하는 것을 의미한다고 생각합니다. – Katana314