복붙노트

[REDIS] 레디 스 : IS ZADD 더 나은 O (logN)이 삽입 된 요소는 시작 또는 끝 부분에있을 때보다?

REDIS

레디 스 : IS ZADD 더 나은 O (logN)이 삽입 된 요소는 시작 또는 끝 부분에있을 때보다?

ZADD위한 레디 스 문서는 동작은 O (N 로그) 상태이다.

ZADD는 O (로그 N)보다 더 나은 경우 삽입 된 요소가 정렬 순서의 시작이나 끝 부분에 그러나, 사람의 노하우는 무엇입니까?

예를 들면 임의의 구현에 대한이 O (1) 일 수있다.

특히, 해당 자습서 상태 레디 스 :

k는 스킵리스트의 최대 수준이고, 시작과 끝에서 지원 O (k)를 삽입하는 스킵 목록을 수정하는 그럴듯하게 보인다.

해결법

  1. ==============================

    1.나는 레디 스 웹 사이트에서이 질문을 교차 배치했고, 피터 Noordhuis 내가 여기 교차 게시 오전 거기에 대한 답을 제공 :

    나는 레디 스 웹 사이트에서이 질문을 교차 배치했고, 피터 Noordhuis 내가 여기 교차 게시 오전 거기에 대한 답을 제공 :

    맞아요. 정렬 된 세트는 노드 당 수준 (이 확률 적 데이터 구조이다)의 수를 결정하기위한 RNG에 의존합니다. 이론적 인 최악의 성능은 O (N)는 (모든 노드가 동일한 레벨을 갖는) 중에 삽입 /를 skiplist의 시작 요소를 삭제하면, O (1) 일 수있다. 당신이 계정의 노드 중 수준의 분포를 취할 때, 상각 시간 복잡도는 (N 로그) O입니다.

  2. ==============================

    2.K와 로그 (N) 사이의 관계가 있는가? 그들은 일정한 비율로 관련하는 경우, 당신은 실제로 아무 것도 변경되지했습니다. (그 관계가 존재하는지는 모르겠지만,이 주제에 대한 위키 피 디아 페이지 OTOH, 페이지가 증명에 연결하지 않는 분명히하는 계층 구조의 관계.이 주어진 매우 그럴듯한 외모와 나는 느끼지 않는다 단지 추측 할 수있다이 때문에, 지금 손으로 파생있다.)

    K와 로그 (N) 사이의 관계가 있는가? 그들은 일정한 비율로 관련하는 경우, 당신은 실제로 아무 것도 변경되지했습니다. (그 관계가 존재하는지는 모르겠지만,이 주제에 대한 위키 피 디아 페이지 OTOH, 페이지가 증명에 연결하지 않는 분명히하는 계층 구조의 관계.이 주어진 매우 그럴듯한 외모와 나는 느끼지 않는다 단지 추측 할 수있다이 때문에, 지금 손으로 파생있다.)

    또한, 알고리즘은 전반적으로 개선되는 것을 특정 특수한 경우를 중지하지 않는 O (N 로그)이라고 일반적 사실 (예컨대, O (1)).

  3. from https://stackoverflow.com/questions/7140527/redis-is-zadd-better-than-ologn-when-the-inserted-element-is-at-the-beginning by cc-by-sa and MIT license