배경 : 약 10 억 개의 키 값 쌍을 삽입 할 예정입니다. 난 (고유 한 64 비트 정수) 키에 대한 (32 비트 정수) 값을 동시에 검색 할 수있는 메모리 내 색인이 필요합니다. 업데이트, 삭제 및 트래버 싱이 없습니다. 키는 일반적으로 시간이 지남에 따라 점차적으로 증가합니다. 이것을 처리하는 데 가장 적합한 색인 구조는 무엇입니까? 내가 생각할 수있
Java를 사용하여 알고리즘 소개, 제 3 판, 알고리즘 소개를 많은 시도없이 구현하려고했습니다. 거의 언제나 구현하려고 할 때마다 많은 오류가 발생합니다. 저자 자신이 자신의 의사 코드를 구현 하려는지 확실하지 않습니다. 그러나 구체적으로이 경우 Btree 알고리즘에 문제가 있습니다. 나는이 문제가 B-Tree-Insert-Nonfull 방법의 어딘가에
기본적으로 부모 포인터 벡터 [0 1 1 2 2 3 3 5 5 ....]는 기본적으로 이진 트리입니다. 인덱스는 자식이며 해당 값은 동일한 벡터에서 부모의 인덱스를 나타냅니다. 예 : 위의 벡터에서 색인 5로 계산하면 요소는 2로 부모가 색인 2에 있음을 나타냅니다. 다시 색인 2에서 요소는 1로 부모가 색인 1에 있음을 의미합니다. 인덱스 1에서 요소는
나는이 논문을 읽고있다. making B+-trees cache conscious in main memory. 섹션 3.1.2에서 저자는 CSB + 트리 노드 내에서 검색하는 몇 가지 방법을 설명합니다. da 기본 접근법은 기존의 while 루프를 사용하여 간단히 이진 검색을 수행하는 것입니다. 균일 방법은 사용되는 모든 키를 가정 if-then-else
이것은 B + 트리의 노드입니다. 내 프로그램이 많은 메모리를 유출하기 때문에 스마트 포인터를 사용하고 싶었다. 스마트 포인터를 사용하여 코드를 변환하는 방법은 무엇입니까? class node
{
public:
long* key;
int capacity;
node** nodes;
node* parent;
B 트리 데이터 구조를 배울 때 작성자는 페이지 및 프로브에 대해 두 가지 정의를 제공합니다. 그리고이 두 용어는 B Tree를 만드는 주된 아이디어입니다. 페이지 : 데이터의 연속 블록 (예 : 파일 또는 4,096 바이트 청크) 프로브 페이지 처음 액세스 (예 : 디스크 메모리) 다음 페이지와 프로브의 두 정의는 ->속성 : 프로브에 대한 시간 요청은
RDMS는 B- 트리의 형태로 디스크에 테이블 데이터를 저장하며 테이블 인덱스는 B- 트리 형식으로 저장됩니다. 나는 기본 키 인덱스가 정의 된 기본 키에 대해 자동으로 생성되는 것을 읽을뿐만 아니라 언제든지 삭제 될 수 있음. 따라서 기본 키 인덱스는 테이블 데이터를 저장하는 데 사용되는 B- 트리 옆에 추가 구조가 있음을 의미합니다. 리소스를 낭비하지
나는 내 데이터 집합을 구성하는 64 비트 정수의 튜플 집합 (x,y)을 가지고있다. 나는 말하자면, 수조 개의 튜플을 가지고있다. 그것은 지구상의 모든 기계에있는 메모리에 데이터 세트를 유지하는 것이 가능하지 않습니다. 그러나 디스크에 저장하는 것이 좋습니다. 나는 하나의 차원에서 데이터를 빠르고 동시에 질의 할 수있는 디스크상의 저장소 (B + -tre
디스크 btrees의 아키텍처를 가장 잘 이해 한 것은 this입니다. 아주 간단하고 이해하기 쉽습니다. 그러나 나는 여전히 혼란 스럽다. 메모리 데이터 구조가 전혀없는 것 같지 않습니다. 내가 놓친 게 있니? 이것을 btree로 만드는 것은 무엇입니까? 자식 노드의 키를 "가리키는"long 배열입니까? 그렇게 효율적입니까? 대부분의 데이터베이스와 파일 시