레드 블랙 트리(Red Black Tree)는 트리의 각 노드가 레드 또는 블랙으로 착색되는 자체 균형 이진 탐색 트리입니다. Red Black Tree에서 수행할 수 있는 작업에는 검색, 삽입 및 삭제의 세 가지 유형이 있습니다. 다음 Red Black Tree에 요소를 삽입해야 한다고 가정해 보겠습니다. 레드-블랙 트리에 요소를 삽입하는 아이디어는 매우 간단합니다. 일반 이진 트리에 삽입하는 것처럼 삽입을 수행합니다. 노드의 색상을 확인하여 루트 노드에서 시작하여 특정 위치에 삽입합니다. 그러나 레드-블랙 트리에는 요소를
표현식 트리 표현식 트리는 리프 노드에 연산할 값이 있고 내부 노드에는 리프 노드가 수행될 연산자가 포함되어 있습니다. 예 4 + ((7 + 9) * 2) 다음과 같은 표현식 트리가 있습니다. 표현식 트리를 구성하는 알고리즘 T를 표현식 트리라고 하자. If T is not NULL: If T->data is an operand: return T.data A = solve(T.left) B = solve(T.right
Yen의 k-shortest path 알고리즘은 단일 최단 경로를 제공하는 대신 k 두 번째 최단 경로와 세 번째 최단 경로 등을 얻을 수 있도록 최단 경로를 지정합니다. A 장소에서 B 장소로 이동해야 하고 A 장소와 B 장소 사이에 여러 경로가 있지만 최단 경로를 찾아야 하는 시나리오를 생각해 보겠습니다. 목적지에 도달하기 위한 시간 복잡도. 예를 들어 이해합시다- 주어진 예를 B의 봉우리가 있는 다리로 생각해 보십시오. 누군가 A에서 C로 다리를 건너고자 한다면 아무도 다리를 건너기 위해 봉우리에 가지 않을 것입니다.
이번 포스트에서는 선형 데이터 구조와 비선형 데이터 구조의 차이점에 대해 알아보겠습니다. 선형 데이터 구조 이러한 구조의 요소는 순차적으로 배열됩니다. 모든 요소는 선형 구조를 통과하여 액세스할 수 있습니다. 선형 구조의 모든 요소는 단일 수준에 있습니다. 즉 계층 구조가 없습니다. 구현 및 사용이 간편합니다. 더 많은 메모리를 사용하므로 메모리 친화적이지 않습니다. 선형 데이터 구조의 시간 복잡도는 일반적으로 구조의 크기가 커질수록 증가합니다. 예에는 목록, 배열, 스택이 포함됩니다. 아
이 게시물에서는 기술 데이터 마이닝과 예측 데이터 마이닝의 차이점을 이해합니다. 기술적 데이터 마이닝 저장된 데이터를 분석하여 과거에 무슨 일이 있었는지 이해하려고 합니다. 제공하는 데이터는 정확합니다. 표준 보고 기능을 제공합니다. 또한 임시 보고 기능도 제공합니다. 반응적 접근 방식을 사용합니다. 데이터 집계 및 데이터 마이닝을 사용합니다. 대상 데이터세트에 있는 데이터의 특성을 알려줍니다. 다음과 같은 질문 - 무슨 일이? 어디에 문제가 있습니까? 이 문제의 빈도는 얼
이 포스트에서는 분류와 회귀의 차이점을 이해할 것입니다. 분류 이산 값을 제공합니다. 주어진 데이터 그룹에서 이 방법은 데이터를 다른 그룹으로 그룹화하는 데 도움이 됩니다. 이 그룹화는 다른 기준에 따라 수행됩니다. 순서가 없습니다. 매핑 기능은 미리 정의된 클래스에 값을 매핑하는 데 사용됩니다. 예:의사결정 트리, 로지스틱 회귀. 회귀 지속적인 값을 제공합니다. 매핑 기능을 사용하여 값을 연속 출력에 매핑합니다. 주문합니다. 종속변수와 독립변수가 있습니다. 가장 적합한
이 포스트에서는 DBMS에서 Primary key와 Foreign key의 차이점을 이해할 것입니다. 기본 키 특정 열의 데이터가 고유한지 확인하는 데 사용됩니다. 관계형 데이터베이스의 레코드를 고유하게 식별하는 데 도움이 됩니다. 테이블에는 하나의 기본 키만 허용됩니다. UNIQUE와 Not Null 제약 조건의 조합입니다. 즉, NULL 값이 될 수 없습니다. 그 값은 상위 테이블에서 삭제할 수 없습니다. 제약 조건은 임시 테이블에 대해 암시적으로 정의될 수 있습니다. 예제- SQL: C
이 게시물에서 우리는 데이터와 메타데이터의 차이점을 이해할 것입니다. 데이터 컴퓨터 메모리에 저장된 모든 유형의 정보입니다. 나중에 다양한 용도로 활용할 수 있습니다. 유익한 정보일 수도 있고 아닐 수도 있습니다. 처리되었거나 처리되지 않았을 수 있습니다. DBMS에서 데이터는 탐색할 수 있는 파일 또는 디렉토리, 즉 계층적 형태로 저장됩니다. DBMS에서 데이터는 개별적으로 또는 집합으로 데이터베이스에 저장된 모든 항목을 말합니다. 예:워드 문서가 생성되고 거기에 텍스트가 추가되면 그 텍스트는
여기서 간격 힙이 무엇인지 볼 것입니다. 간격 힙은 완전한 이진 트리로, 마지막 노드를 제외한 각 노드에 두 개의 요소가 포함됩니다. 노드 P에 있는 두 요소의 우선순위를 a와 b라고 하자. 여기서 우리는 ≤ b를 고려합니다. 노드 P는 닫힌 구간 [a, b]를 나타냅니다. 여기서 P 구간의 왼쪽 끝점이고 b가 오른쪽 끝점입니다. [c, d]는 a ≤ c ≤ d ≤ b인 경우에만 구간 [a, b]에 포함됩니다. 간격 힙에서 각 노드 P의 왼쪽 및 오른쪽 자식으로 표시되는 간격은 P로 표시되는 간격에 포함됩니다. 마지막 노드에 우선순
여기서 B-Tree에서 검색을 수행하는 방법을 살펴보겠습니다. B-트리 검색은 B-트리 쿼리라고도 합니다. 아래와 같은 B-트리가 있다고 가정합니다. - B-트리의 예 - 검색 기술은 이진 검색 트리와 매우 유사합니다. 위의 트리에서 66을 검색한다고 가정합니다. 따라서 루트에서 시작합니다. 이제 66은 루트 요소 46보다 큽니다. 따라서 루트의 오른쪽 자식으로 이동합니다. 그런 다음 오른쪽 자식에는 둘 이상의 요소가 있습니다. 요소는 정렬되며 [56, 81]입니다. 대상 키는 56보다 크고 81보다 작으므로 56과 81 사이
여기서 B-트리에 삽입을 수행하는 방법을 살펴보겠습니다. 아래와 같은 B-Tree가 있다고 가정합니다. - B-트리의 예 - 요소를 삽입하는 아이디어는 BST와 매우 유사하지만 몇 가지 규칙을 따라야 합니다. 각 노드에는 m개의 자식과 m-1개의 요소가 있습니다. 하나의 노드에 요소를 삽입하면 두 가지 상황이 발생합니다. 노드에 m-1보다 작은 요소가 있으면 새 요소가 노드에 직접 삽입됩니다. m-1개의 요소가 있는 경우 모든 요소와 삽입될 요소를 취하여 그 중 중간값을 취하고 동일한 기준을 수행하여 중간값을 해당 노드의 루트
여기서 B-Tree에서 노드를 삭제하는 방법을 살펴보겠습니다. 아래와 같은 BTree가 있다고 가정합니다 - B-트리의 예 - 삭제에는 두 부분이 있습니다. 먼저 요소를 찾아야 합니다. 그 전략은 쿼리와 같습니다. 이제 삭제를 위해 몇 가지 규칙에 주의해야 합니다. 하나의 노드에는 최소 m/2개의 요소가 있어야 합니다. 따라서 하나의 요소를 삭제하고 m-1개 미만의 요소가 남아 있으면 자동으로 조정됩니다. 전체 노드가 삭제되면 자식 노드가 병합되고 크기가 m과 같으면 두 부분으로 나누면 다시 중앙값이 올라갑니다. 46을 삭제
여기서 B+ 트리가 무엇인지 살펴보겠습니다. B+ 트리는 B-트리의 확장 버전입니다. 이 트리는 B-트리보다 더 나은 삽입, 삭제 및 검색을 지원합니다. B-트리, 키 및 레코드 값은 내부 노드와 리프 노드에 저장됩니다. B+ 트리 레코드에서 리프 노드에 저장할 수 있으며 내부 노드는 키 값만 저장합니다. B+ 트리의 리프 노드도 연결 목록처럼 연결됩니다. B+ 트리의 예 - 검색, 삽입, 삭제와 같은 기본 작업을 지원합니다. 각 노드에서 항목이 정렬됩니다. 위치 i에 있는 요소는 앞뒤에 자식이 있습니다. 따라서 이전에 정렬
여기서 B+ Tree에서 검색을 수행하는 방법을 살펴보겠습니다. B+ 트리 검색은 B+ 트리 쿼리라고도 합니다. 이 알고리즘은 B-Tree 쿼리와 매우 유사합니다. 또한 이것은 범위 쿼리를 지원합니다. 아래와 같은 B+ 트리가 있다고 가정합니다. - B+ 트리의 예 - 검색 기술은 이진 검색 트리와 매우 유사합니다. 위의 트리에서 63을 검색한다고 가정합니다. 이제 루트에서 시작합니다. 이제 63은 루트 요소 60보다 크지만 75보다 작습니다. 따라서 요소 60의 오른쪽 자식으로 이동합니다. 오른쪽 자식은 63입니다. 그러나
여기서 B+ 트리에 삽입을 수행하는 방법을 살펴보겠습니다. 아래와 같은 B+ 트리가 있다고 가정합니다. - B+ 트리의 예 - 요소를 삽입하는 아이디어는 B-Tree와 매우 유사합니다. 하나의 요소가 삽입되면 리프 노드에 저장됩니다. 그것이 어떤 내부 노드에 존재한다면, 그것은 또한 자신의 오른쪽 자식으로 잎에 있을 것입니다. 트리에 65를 삽입한다고 가정합니다. 따라서 60보다 크고 75보다 작습니다. 그런 다음 중간 하위 트리에 삽입됩니다. 이제 65는 63 이후의 노드에 삽입되고 해당 노드는 두 부분으로 나뉘며 65는
여기서는 B+ Tree에서 노드를 삭제하는 방법을 살펴보겠습니다. 7minus 이하와 같은 B+ 트리가 있다고 가정합니다. B+ 트리의 예 - 삭제에는 두 부분이 있습니다. 먼저 요소를 찾아야 합니다. 그 전략은 쿼리와 같습니다. 이제 삭제를 위해 몇 가지 규칙에 주의해야 합니다. 하나의 노드에는 최소 m/2개의 요소가 있어야 합니다. 따라서 하나의 요소를 삭제하고 m-1개 미만의 요소가 남아 있으면 자동으로 조정됩니다. 전체 노드가 삭제되면 자식 노드가 병합되고 크기가 m과 같으면 두 부분으로 나누면 다시 중앙값이 올라갑니
이 섹션에서는 간격 트리가 무엇인지 볼 것입니다. 이름에서 알 수 있듯이 간격 나무는 간격과 관련된 나무입니다. 따라서 간격 트리에 대해 논의하기 전에 기본 간격을 살펴보겠습니다. 간격은 기본적으로 범위입니다. 따라서 하나의 간격이 [a, b]로 작성되면 범위가 b에서 시작하여 b에서 끝나는 것을 나타냅니다. 이제 간격 [10, 20]이 있다고 가정합니다. 따라서 세 가지 범위 값이 있습니다. 첫 번째는 -∞에서 10, 10에서 20, 마지막으로 20에서 ∞ 이제 [15, 25]에서 두 번째 간격을 생성한다고 가정합니다. 그
이 섹션에서는 세그먼트 트리가 무엇인지 볼 것입니다. 이에 대해 논의하기 전에 한 가지 문제를 살펴보겠습니다. 배열 arr[0,…,n-1]이 있다고 가정하고 다음 작업을 수행할 수 있습니다. - 인덱스 l에서 r까지 요소의 합을 찾습니다. 여기서 0 ≤ l ≤ r ≤ n-1 배열의 지정된 요소 값을 새 값 x로 변경합니다. 우리는 arr[i] =x를 해야 합니다. 0 ~ n – 1 범위의 i. 세그먼트 트리를 사용하여 이 문제를 해결할 수 있습니다. 세그먼트 트리는 O(log n) 시간에 합계와 쿼리를 얻는 데 도
이 섹션에서는 K-ary 트리가 무엇인지 볼 것입니다. K-ary 트리는 각 노드가 최대 k 수의 자식을 보유할 수 있는 루트 트리입니다. k 값이 2이면 이진 트리라고 합니다. 이진 트리 또는 삼항 트리는 일부 특수화된 k-ary 트리입니다. 따라서 k-ary 트리가 일반화됩니다. K-ary 트리의 예 - 위의 예에는 루트가 있습니다. 루트에는 4명의 자식이 있습니다. 루트의 각 자식에는 일부 자식도 있습니다. 첫 번째 아이는 3명의 자녀가 있고, 두 번째 아이는 아이가 없고, 세 번째 아이는 2명의 아이가 있고, 마지막
여기에서 비순환 쌍곡선이 무엇인지 살펴보겠습니다. 비순환 쌍곡선은 유향 주기가 없는 유향 그래프입니다. 방향성 비순환 그래프는 DAG로 약칭됩니다. 모든 유한 DAG에는 아웃도가 0인 노드가 하나 이상 있습니다. 노드가 하나인 DAG의 예 - 2개의 노드가 있는 DAG의 예 - 노드가 3개인 DAG의 예 -