나는이 : 그것은 지금인덱싱 된 데이터 구조에서 제거하고 동시에 이동하는 것을 피할 수 있습니까?
0 => a
1 => x
2 => A
...
1356 => w
1357 => o
로, 내가 쉽게 POS (555)가 색인되어 있기 때문에, 즉, 어떤 선형 검색이 필요하지 않습니다를 얻을 수 있습니다.
이제 333 위치를 제거하면 다음 번에 get(555)
이라고 호출하면 이전 요소 인 556이 제거 된 이후에 새로운 555가 될 것이므로 위의 모든 요소가 이동해야합니다.
목록이 커지면 이동이 비쌉니다.
이동하지 않고 제거하고 모든 항목을 올바르게 색인화하는 방법이 있습니까?
가장 먼저 떠오르는 것은 이중 연결된 목록이지만 인덱싱되지 않습니다.
변화를 줄이기 위해 데이터 구조의 이상한 조합이 필요하지만 여전히 색인이 있습니까?
데이터 구조에 필요한 것은 무엇입니까? 간단한 방법은 O (sqrt (N)) 성능을 허용하지만 (세그먼트 트리의 선을 따라) 밸런싱 된 이진 트리를 사용하면 O (log N)을 허용하지만 대부분의 k 요소의 k 배열로 크기 N 배열을 나눕니다. 성능은 다소 복잡합니다. – Nuclearman
그건 재미 있어요. 당신은 대답에 여러 배열 방법으로 침입에 대해 자세히 설명해 주시겠습니까? 감사! –
'TreeMap'은 당신의 요구를 만족시키지 못합니까? –