[REDIS] 레디 스 : IS ZADD 더 나은 O (logN)이 삽입 된 요소는 시작 또는 끝 부분에있을 때보다?
REDIS레디 스 : IS ZADD 더 나은 O (logN)이 삽입 된 요소는 시작 또는 끝 부분에있을 때보다?
ZADD위한 레디 스 문서는 동작은 O (N 로그) 상태이다.
ZADD는 O (로그 N)보다 더 나은 경우 삽입 된 요소가 정렬 순서의 시작이나 끝 부분에 그러나, 사람의 노하우는 무엇입니까?
예를 들면 임의의 구현에 대한이 O (1) 일 수있다.
특히, 해당 자습서 상태 레디 스 :
k는 스킵리스트의 최대 수준이고, 시작과 끝에서 지원 O (k)를 삽입하는 스킵 목록을 수정하는 그럴듯하게 보인다.
해결법
-
==============================
1.나는 레디 스 웹 사이트에서이 질문을 교차 배치했고, 피터 Noordhuis 내가 여기 교차 게시 오전 거기에 대한 답을 제공 :
나는 레디 스 웹 사이트에서이 질문을 교차 배치했고, 피터 Noordhuis 내가 여기 교차 게시 오전 거기에 대한 답을 제공 :
맞아요. 정렬 된 세트는 노드 당 수준 (이 확률 적 데이터 구조이다)의 수를 결정하기위한 RNG에 의존합니다. 이론적 인 최악의 성능은 O (N)는 (모든 노드가 동일한 레벨을 갖는) 중에 삽입 /를 skiplist의 시작 요소를 삭제하면, O (1) 일 수있다. 당신이 계정의 노드 중 수준의 분포를 취할 때, 상각 시간 복잡도는 (N 로그) O입니다.
-
==============================
2.K와 로그 (N) 사이의 관계가 있는가? 그들은 일정한 비율로 관련하는 경우, 당신은 실제로 아무 것도 변경되지했습니다. (그 관계가 존재하는지는 모르겠지만,이 주제에 대한 위키 피 디아 페이지 OTOH, 페이지가 증명에 연결하지 않는 분명히하는 계층 구조의 관계.이 주어진 매우 그럴듯한 외모와 나는 느끼지 않는다 단지 추측 할 수있다이 때문에, 지금 손으로 파생있다.)
K와 로그 (N) 사이의 관계가 있는가? 그들은 일정한 비율로 관련하는 경우, 당신은 실제로 아무 것도 변경되지했습니다. (그 관계가 존재하는지는 모르겠지만,이 주제에 대한 위키 피 디아 페이지 OTOH, 페이지가 증명에 연결하지 않는 분명히하는 계층 구조의 관계.이 주어진 매우 그럴듯한 외모와 나는 느끼지 않는다 단지 추측 할 수있다이 때문에, 지금 손으로 파생있다.)
또한, 알고리즘은 전반적으로 개선되는 것을 특정 특수한 경우를 중지하지 않는 O (N 로그)이라고 일반적 사실 (예컨대, O (1)).
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
'REDIS' 카테고리의 다른 글
[REDIS] SQLite는의 레디 스 포팅 (0) | 2020.01.07 |
---|---|
[REDIS] 어떻게 루프 내부 비동기 기능 완료 후 함수를 호출하는 방법? (0) | 2020.01.07 |
[REDIS] 레디 스 GET SQL SELECT 대 (0) | 2020.01.07 |
[REDIS] 메모리와 CPU 스파이크 레디 스 (0) | 2020.01.07 |
[REDIS] 명령 줄에서 종료 레디 스 서버 (0) | 2020.01.07 |