마인드 맵 갤러리 데이터 구조 및 알고리즘의 기본 개념
데이터 구조와 알고리즘의 두 가지 주요 측면을 소개했습니다. 데이터 구조에는 주로 선형 구조와 비선형 구조가 포함됩니다. 선형 구조에는 선형 목록, 스택, 큐, 문자열, 배열, 행렬, 일반화된 목록 등이 포함됩니다. 비선형 구조에는 트리, 이진 트리, 포리스트, 그래프 등이 포함됩니다. 데이터 구조의 작업에는 주로 검색과 정렬이 포함됩니다. 알고리즘 측면에서는 분할정복법, 동적 프로그래밍법 등 기존의 알고리즘을 중심으로 데이터 마이닝 알고리즘, 지능형 최적화 알고리즘 등을 소개한다.
2022-06-30 12:23:27에 편집됨이것은 (III) 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제에 대한 마인드 맵이며, 주요 함량은 다음을 포함한다 : 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제 (HIF-PHI)는 신장 빈혈의 치료를위한 새로운 소형 분자 경구 약물이다. 1. HIF-PHI 복용량 선택 및 조정. Rosalasstat의 초기 용량, 2. HIF-PHI 사용 중 모니터링, 3. 부작용 및 예방 조치.
이것은 Kuka Industrial Robots의 개발 및 Kuka Industrial Robot의 모션 제어 지침에 대한 마인드 맵입니다. 주요 내용에는 쿠카 산업 로봇의 역사, 쿠카 산업 로봇의 특성, 쿠카 산업 로봇의 응용 분야, 2. 포장 프로세스에서 쿠카 로봇은 빠르고 일관된 포장 작업을 달성하고 포장 효율성을 높이며 인건비를 줄입니다. 2. 인건비 감소 : 자동화는 운영자에 대한 의존성을 줄입니다. 3. 조립 품질 향상 : 정확한 제어는 인간 오류를 줄입니다.
408 컴퓨터 네트워크가 너무 어렵습니까? 두려워하지 마세요! 나는 피를 구토하고 지식 맥락을 명확히하는 데 도움이되는 매우 실용적인 마인드 맵을 분류했습니다. 컨텐츠는 매우 완전합니다. 네트워크 아키텍처에서 응용 프로그램 계층, TCP/IP 프로토콜, 서브넷 디비전 및 기타 핵심 포인트에 이르기까지 원칙을 철저히 이해하는 데 도움이 될 수 있습니다. 📈 명확한 논리 : Mindmas 보물, 당신은 드문 기회가 있습니다. 서둘러! 이 마인드 맵을 사용하여 408 컴퓨터 네트워크의 학습 경로에서 바람과 파도를 타고 성공적으로 해변을 얻으십시오! 도움이 필요한 친구들과 공유해야합니다!
이것은 (III) 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제에 대한 마인드 맵이며, 주요 함량은 다음을 포함한다 : 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제 (HIF-PHI)는 신장 빈혈의 치료를위한 새로운 소형 분자 경구 약물이다. 1. HIF-PHI 복용량 선택 및 조정. Rosalasstat의 초기 용량, 2. HIF-PHI 사용 중 모니터링, 3. 부작용 및 예방 조치.
이것은 Kuka Industrial Robots의 개발 및 Kuka Industrial Robot의 모션 제어 지침에 대한 마인드 맵입니다. 주요 내용에는 쿠카 산업 로봇의 역사, 쿠카 산업 로봇의 특성, 쿠카 산업 로봇의 응용 분야, 2. 포장 프로세스에서 쿠카 로봇은 빠르고 일관된 포장 작업을 달성하고 포장 효율성을 높이며 인건비를 줄입니다. 2. 인건비 감소 : 자동화는 운영자에 대한 의존성을 줄입니다. 3. 조립 품질 향상 : 정확한 제어는 인간 오류를 줄입니다.
408 컴퓨터 네트워크가 너무 어렵습니까? 두려워하지 마세요! 나는 피를 구토하고 지식 맥락을 명확히하는 데 도움이되는 매우 실용적인 마인드 맵을 분류했습니다. 컨텐츠는 매우 완전합니다. 네트워크 아키텍처에서 응용 프로그램 계층, TCP/IP 프로토콜, 서브넷 디비전 및 기타 핵심 포인트에 이르기까지 원칙을 철저히 이해하는 데 도움이 될 수 있습니다. 📈 명확한 논리 : Mindmas 보물, 당신은 드문 기회가 있습니다. 서둘러! 이 마인드 맵을 사용하여 408 컴퓨터 네트워크의 학습 경로에서 바람과 파도를 타고 성공적으로 해변을 얻으십시오! 도움이 필요한 친구들과 공유해야합니다!
데이터 구조
데이터 구조
개념
정의
데이터 요소들의 집합이며, 요소들과 구축 방법 간의 관계를 정리한 것입니다.
요소 간의 관계는 데이터의 논리적 구조입니다.
데이터 요소와 요소 간의 관계를 저장하는 것을 저장 구조(/물리적 구조)라고 합니다.
세 가지 요소
논리적 구조
저장 구조
작업
논리적 구조에 따라 분류
선형 구조
비선형 구조
트리 구조
그래프 구조
"선형 구조"에 대하여
정의
객관적인 세계에서 단일 선행자 및 후행자와의 데이터 관계를 설명하는 데 사용됩니다.
특징
데이터 요소 사이에는 선형 관계가 있습니다. 즉, 요소가 "하나씩" 배열됩니다.
분류
선형 테이블
정의
이는 n(n≥0) 요소(구조적으로 나눌 수 없음)의 유한 시퀀스이며 일반적으로 (a1,a2,...,an)으로 표현됩니다.
기본 조작
끼워 넣다
삭제
찾다
저장 구조
순차 저장
선형 테이블에 데이터 요소를 순차적으로 저장하기 위해 연속적인 주소가 있는 저장 장치 세트를 사용합니다.
i번째 요소 ai의 저장 위치
LOC(ai) = LOC(a1) (i-1) x L
체인 스토리지
포인터로 연결된 노드를 사용하여 데이터 요소 저장
노드 구조
데이터 필드
데이터 요소의 값을 저장하는 데 사용됩니다.
포인터 필드
현재 요소의 바로 전임자 또는 직속 후임자의 위치 정보를 저장하는 데 사용됩니다.
분류
선형 연결 목록(또는 단방향 연결 목록)
노드에는 포인터 필드가 하나만 있습니다.
이중 연결 리스트
각 노드에는 2개의 포인터가 있습니다.
순환 연결 리스트
테이블 끝에 있는 노드의 포인터는 테이블의 머리에 있는 노드를 가리킵니다.
정적 연결리스트
배열을 사용하여 선형 목록의 연결된 저장 구조 설명
스택
정의
데이터 저장 및 검색은 한쪽 끝(LIFO, Last In First Out, LIFO)을 통해서만 가능합니다.
기본 조작
초기화 스택 InitStack(S)
스택이 비어 있는지 확인 IsEmpty(S)
스택에 푸시합니다. Push(S, x)
아저씨)
스택 Top(S)의 최상위 요소를 읽습니다.
저장 구조
순차 저장
체인 스토리지
애플리케이션
발현 평가
브래킷 일치
재귀 프로세스를 비재귀 프로세스로 변환
대기줄
정의
요소는 테이블의 한쪽 끝에서만 삽입되고 테이블의 다른 쪽 끝에서는 삭제될 수 있습니다(선입 선출, FIFO).
기본 조작
큐 InitQueue(Q) 초기화
심판 팀 비어 있음 IsEmpty(Q)
대기열에 넣기 EnQueue(Q, x)
대기열에서 DelQueue(Q) 제거
대기열 FrontQue(Q)의 헤드 요소를 읽습니다.
저장 구조
순차 저장
순차 대기열
순환 대기열
체인 스토리지
체인 대기열
끈
정의
제한된 문자 순서만 가능합니다. 일반적으로 S='a1a2...an'으로 기록되며 S는 문자열 이름이고 = 뒤의 문자열은 문자열 값입니다.
기본 사상
빈 문자열, 문자열 비교;
기본 조작
할당 작업 StrAssign(s, t)
연결 연산 Concat(s, t)
문자열 길이 StrLength(s)
문자열 비교 StrCompare(s, t)
하위 문자열 찾기 SubString(s, start, len)
저장 구조
순차 저장
체인 스토리지
패턴 매칭
정의
부분 문자열의 위치 지정 작업을 문자열 패턴 일치라고 합니다.
하위 문자열은 패턴 문자열이라고도 합니다.
매칭 알고리즘
순진한 패턴 일치 알고리즘
Brut-Foss 알고리즘
향상된 패턴 일치 알고리즘
KMP 알고리즘
홍보
정렬
정의
배열은 차원 측면에서 고정 길이 선형 목록의 확장입니다. 즉, 선형 목록의 요소도 선형 목록입니다.
N차원 배열은 각 데이터 요소가 동일한 유형과 일관된 구조를 갖는 "동형" 데이터 구조입니다.
특징
고정된 수의 데이터 요소
데이터 요소의 유형이 동일함
데이터 요소의 첨자 관계에는 상한 및 하한 제약이 있으며, 첨자는 순서가 있습니다.
기본 조작
아래 첨자 세트가 주어지면 데이터 요소에 액세스합니다.
아래첨자 세트가 주어지면 데이터 요소를 수정합니다.
저장 구조
순차 저장
행렬
정의
행렬은 수학적 객체입니다. 여기서는 저장 공간을 절약하면서 행렬에 대한 다양한 연산을 효율적으로 실행하는 방법을 주로 연구합니다.
분류
특수 매트릭스
행렬에서 값이 동일하거나 요소가 0인 요소의 분포에는 특정 규칙이 있습니다.
분류
대칭행렬
대각 행렬
삼각행렬
희소 행렬
동일한 값을 갖는 요소 또는 0개의 요소가 행렬에 불규칙하게 분포됩니다.
저장
세 요소(i, j, aij)를 사용하여 행 번호, 열 번호 및 1개 요소의 값을 저장합니다.
저장 구조
순차 저장
트리플 시퀀스 테이블
체인 스토리지
교차 연결 목록
일반화된 테이블
정의
0개 이상의 단일 요소 또는 하위 목록으로 구성된 유한 시퀀스입니다.
길이
요소 수
깊이
확장 후 일반화된 테이블에 포함된 괄호의 최대 수준 수
기본 조작
끼워 넣다
삭제
찾다
저장 구조
체인 스토리지
"비선형 구조"에 대하여
나무
정의
데이터 요소는 0~1개의 직전 선행 요소와 두 개 이상의 직속 후속 요소를 가질 수 있습니다.
트리는 n(n≥0)개의 노드로 구성된 유한 집합입니다.
트리의 정의는 재귀적입니다. "루트"라는 노드는 하나만 있고 나머지 노드는 루트 노드의 "하위 트리"라고 합니다.
논리적 구조
요소들 사이에는 계층적 관계가 있습니다.
기본 사상
부모
자식 노드의 루트 노드
어린이
노드 하위 트리의 루트를 노드의 자식이라고 합니다.
형제
동일한 부모를 가진 노드는 서로 형제입니다.
리프 노드
터미널 노드, 차수는 0입니다.
내부 노드
비종단 노드 또는 분기 노드, 차수는 0이 아닙니다.
노드의 정도
노드의 하위 트리 수
노드 수준
루트는 레벨 1이고 루트의 하위 항목은 레벨 2입니다.
나무 높이
트리의 최대 레이어 수는 트리의 높이(또는 깊이)로 기록됩니다.
정렬된 트리와 정렬되지 않은 트리
트리에 있는 노드의 하위 트리에 순서가 있으면 순서가 있는 트리이고, 그렇지 않으면 순서가 없는 숫자입니다.
저장 구조
상위 표현
아동 대표
남동생 대표
이는 트리, 이진 트리 및 포리스트 간의 변환을 실현할 수 있는 가능성을 제공합니다.
기본 조작
횡단
방법
루트 순회 먼저
먼저 트리의 루트 노드를 방문한 다음 루트의 각 하위 트리를 순서대로 탐색합니다.
백 루트 순회
먼저 루트의 각 하위 트리를 순서대로 순회한 다음 루트 노드를 방문합니다.
기타 부문
이진 트리
정의
이진 트리는 n(n≥0) 노드의 유한 집합입니다.
이진 트리의 정의는 재귀적입니다. 이는 1개의 루트 노드와 각각 왼쪽 및 오른쪽 하위 트리라고 불리는 2개의 분리된 이진 트리로 구성됩니다.
주요 속성
이진 트리의 i번째 수준(i≥1)에는 최대 2(i-1)번째 전력 노드가 있습니다.
높이가 k(k≥1)인 이진 트리에는 최대 2k-1개의 노드가 있습니다.
분류
완전 이진 트리
각 레이어에는 빈 노드가 없습니다.
완전 이진 트리
마지막 층을 제외하면 다른 모든 층은 꽉 찼습니다.
마지막 레이어의 노드는 왼쪽에서 오른쪽으로 배치되며 비워 둘 수 없습니다.
불완전한 이진 트리
저장 구조
순차 저장
연속된 주소를 가진 메모리 셀 세트에 적절한 순서로 이진 트리의 노드를 저장합니다.
루트 노드 번호가 1인 완전한 이진 트리를 가정합니다. 노드 번호가 i인 경우
i=1이면 해당 노드는 루트 노드이고 상위 노드가 없습니다.
i>1이면 이 노드의 상위 노드는 ⌊ i/2 ⌋입니다.
2i≤n이면 노드의 왼쪽 자식은 2i이고, 그렇지 않으면 왼쪽 자식이 없습니다.
2i 1≤n이면 노드의 오른쪽 자식은 2i 1이고, 그렇지 않으면 오른쪽 자식이 없습니다.
체인 스토리지
저장
노드에는 데이터 요소, 부모, 왼쪽 하위 트리의 루트 및 오른쪽 하위 트리의 루트가 포함됩니다.
사용 가능한 바이너리 연결 목록 또는 삼중 연결 목록 저장소
기본 조작
횡단
정의
특정 전략에 따라 트리의 각 노드를 방문하고 한 번만 방문하는 과정
이진 트리를 순회하는 과정은 본질적으로 특정 규칙에 따라 트리의 노드를 선형 시퀀스로 배열하는 과정입니다.
방법
(1) 방문한 루트 노드의 위치에 따라 왼쪽 하위 트리를 먼저 순회한 다음 오른쪽 하위 트리를 순회하는 관례에 따르면,
3가지 방법 이용 가능
선주문 순회
중위순회
후순위 순회
(2) 레이어 순서 탐색(하향식, 왼쪽에서 오른쪽, 레이어별 액세스)
기타 부문
단서 이진 트리
정의
이진 트리 노드의 저장 정보에 직접 선행자 및 직접 후임자 정보를 추가합니다.
최적 이진 트리
정의
허프만 트리라고도 하며 가중치가 부여된 경로 길이가 가장 짧은 트리입니다.
기본 사상
길
트리의 한 노드에서 다른 노드로의 경로
경로 길이
경로의 분기 수
노드의 가중 경로 길이
노드에서 트리 루트까지의 경로 길이에 노드의 가중치를 곱한 값
나무 경로 길이
루트에서 각 리프까지의 경로 길이의 합
트리의 가중치가 부여된 경로 길이
트리에 있는 모든 리프 노드의 가중치가 부여된 경로 길이의 합
구성 알고리즘
(1) 이진 트리 집합에서 가중치가 가장 작은 두 개의 트리를 왼쪽 및 오른쪽 하위 트리로 선택하고(둘 중 가중치가 작은 트리를 왼쪽 하위 트리로 배치) 새로운 이진 트리를 구성합니다. 왼쪽 및 오른쪽 하위 트리의 포인트 가중치의 합은 새 이진 트리의 루트 노드 가중치로 사용됩니다. (2) 세트에서 이 두 트리를 삭제하고 새로 구성된 트리를 추가합니다. 위의 단계를 반복하십시오.
애플리케이션
허프만 코딩
설명하다
숲
정의
나무와 숲은 상호 재귀적으로 정의됩니다.
기본 조작
횡단
방법
선주문 순회
먼저 포리스트에 있는 첫 번째 트리의 루트 노드를 방문한 다음, 첫 번째 트리의 루트 노드에 있는 하위 트리 포리스트를 순서대로 순회합니다. 라스트 오더는 남은 나무들의 숲을 횡단한다
중위순회
먼저 포리스트의 첫 번째 트리의 하위 트리 포리스트를 순서대로 순회한 후 첫 번째 트리의 루트 노드를 방문합니다. 마지막으로 남은 나무들로 이루어진 숲을 순서대로 횡단한다.
트리, 이진 트리, 포리스트 간 변환
트리를 이진 트리로 변환
단계
(1) 라인 추가: 형제 노드 간의 연결을 추가합니다.
(2) 회선 제거: 노드는 첫 번째 노드와의 연결만 유지합니다.
(3) 레벨 조정(회전): 트리 루트 노드를 축으로 하여 첫 번째 자식 노드가 왼쪽 자식 위치에, 형제 노드가 오른쪽 자식 위치에 위치하도록 회전합니다.
포리스트를 이진 트리로 변환
단계
(1) 포리스트의 각 트리는 이진 트리로 변환됩니다.
(2) 첫 번째 이진 트리는 이동하지 않고 다음 이진 트리의 루트 노드를 이전 이진 트리 루트 노드의 오른쪽 자식으로 사용하여 연결한다.
이진 트리를 트리로 변환
단계
(1) 라인을 추가합니다. 노드 왼쪽 자식의 n 오른쪽 자식 노드는 모두 이 노드의 자식 노드이며 연결되어 있습니다.
(2) 라인 제거: 원래 이진 트리의 모든 노드와 오른쪽 자식 노드 사이의 연결을 삭제합니다.
(3) 레벨 조정(회전)
이진 트리를 포리스트로 변환
단계
(1) 이진 트리 분리
루트 노드부터 시작하여 모든 오른쪽 하위 연결을 삭제합니다.
(2) 이진 트리를 트리로 변환
그림
정의
노드의 선행 노드와 후속 노드 수에는 제한이 없습니다.
그래프 G(Graph)는 V(Vertex)와 E(Edge) 세트로 구성된 튜플이며 G=(V, E)로 표시됩니다.
V는 비어 있지 않은 유한 정점 집합(데이터 요소)입니다.
E는 유한한 모서리 집합입니다(데이터 요소 간의 관계).
기본 사상
정점의 정도
경비
꼭짓점과 연관된 모서리 수는 내부 차수와 외부 차수의 합이며 D(v)로 표시됩니다.
도
ID(v)로 기록되는 정점에서 끝나는 방향성 가장자리의 수입니다.
아웃 학위
이 정점에서 시작하여 방향이 지정된 가장자리의 수이며 OD(v)로 기록됩니다.
길
정점 vp에서 정점 vq까지의 정점 시퀀스
경로 길이
경로에 있는 번호
루프 또는 링
첫 번째 꼭지점과 마지막 꼭지점이 같은 경로
경로의 나머지 정점이 다른 경우 이를 단순 경로라고 합니다.
서브플롯
연결된 그래프와 연결된 구성요소
연결된 그래프
임의의 두 꼭지점은 무방향 그래프로 연결됩니다.
연결된 구성요소
이 그래프의 최대 연결 하위 그래프
강하게 연결된 그래프와 강하게 연결된 구성요소
강하게 연결된 그래프
임의의 두 꼭지점은 방향 그래프로 연결됩니다.
강하게 연결된 구성 요소
이 그래프의 최대 연결 하위 그래프
그물
측면 가중치가 있는 그래프
방향성 트리
진입 차수가 0인 정점 하나와 진입 차수가 1인 나머지 정점이 있는 방향 그래프
스패닝 트리
그래프의 최소 연결된 하위 그래프(사이클 없음)
그래프의 스패닝 트리는 고유하지 않습니다.
단일 소스 포인트 최단 경로
분류
유향 그래프
모든 모서리에는 방향이 있습니다
정점 간의 관계는 <vi, vj>로 표현됩니다.
이는 vi에서 vj까지의 가장자리가 방향이 있음(호라고도 함)을 의미합니다.
vi는 호 꼬리(arc tail)라고 불리는 유향 모서리의 시작점입니다.
vj는 호 헤드라고 불리는 유향 모서리의 끝점입니다.
기타 부문
방향성 비순환 그래프
순환이 없는 방향성 그래프
무방향 그래프
각 모서리에는 방향이 없습니다.
정점 간의 관계는 (vi, vj)로 표현됩니다.
완전한 그래프
모든 꼭짓점은 다른 꼭짓점과의 간선을 가집니다.
분류
방향성 완전 그래프
방향이 없는 완전 그래프
저장 구조
인접 행렬 표기법
인접 연결 리스트 표현
기본 조작
횡단
정의
그래프 순회는 특정 정점에서 시작하여 특정 검색 경로를 따라 그래프의 모든 정점을 한 번만 방문하는 과정을 의미합니다.
방법
깊이 우선 검색(DFS)
가능하면 깊이 방향으로 먼저 검색하고 접근하세요.
너비 우선 검색(BFS)
가능하면 가로 방향으로 먼저 검색하세요.
"최소 스패닝 트리"에 대하여
정의
연결된 네트워크의 경우 가장자리에 가중치가 부여되고 스패닝 트리의 각 가장자리에도 가중치가 부여됩니다.
최소 스패닝 트리는 가장 작은 가중치를 갖는 스패닝 트리입니다.
기본 사상
스패닝 트리 오른쪽
스패닝 트리의 각 모서리에 대한 가중치의 합
일반적으로 사용되는 최소 신장 트리 해결 알고리즘
프림의 알고리즘
크루스칼의 알고리즘
"단일 소스로부터의 최단 경로"에 대하여
정의
이는 가중 방향 그래프 G와 소스 포인트 v0가 주어지면 v0에서 G의 나머지 꼭지점까지의 최단 경로를 찾는 것을 의미합니다.
일반적으로 사용되는 해결 알고리즘
Dijkstra의 알고리즘
플로이드의 알고리즘
애플리케이션
AOV 네트워크(Vertex 네트워크에서의 활동)
정의
정점을 사용하여 활동을 나타내고 방향성 에지를 사용하여 활동 간의 우선순위 관계를 나타내는 방향성 그래프입니다.
AOV 네트워크에는 방향성 주기가 표시되어서는 안 됩니다.
AOV 네트워크에 루프가 있는지 확인
방법
유향 그래프의 경우 위상적으로 정렬된 정점 시퀀스를 구성합니다. 그래프의 모든 정점이 위상적으로 정렬된 시퀀스에 있으면 순환이 없습니다.
단계
(1) 네트워크에서 In차수가 0인 정점을 선택하고 출력합니다.
(2) 네트워크에서 꼭지점 및 모든 관련 호를 삭제합니다.
(3) 네트워크에 in-degree가 0인 정점이 없을 때까지 위의 두 단계를 반복합니다.
(4) 결과
모든 정점이 출력되었다면 전체 토폴로지 정렬이 완료되어 루프가 없음을 나타냅니다.
아직 출력되지 않은 정점이 있고, 나머지 정점이 모두 선행 정점을 가지고 있는 경우, 이때 토폴로지 정렬을 계속할 수 없어 루프가 있음을 나타냅니다.
AOE 네트워크(Activity On Edge 네트워크)
정의
이벤트는 꼭지점으로 표시되고 활동은 방향이 있는 모서리로 표시되며 활동 기간은 모서리의 가중치로 표시되는 방향 그래프입니다.
전체 프로젝트에 소요되는 시간은 시작 정점에서 끝 정점까지 가장 긴 경로의 길이입니다.
기본 사상
정점으로 표시되는 이벤트는 일부 활동이 완료되었으며 일부 활동을 시작할 수 있다는 신호입니다.
원천
내차가 0인 시작 꼭짓점
미팅 포인트
아웃 차수가 0인 끝 정점
중요 경로
소스에서 싱크까지의 가장 긴 경로
중요 경로의 모든 활동은 중요 활동입니다.
정점 이벤트 시간
정점 사건 ve(j)의 가장 빠른 발생 시간
정점 이벤트 vl(i)의 최근 발생 시간
데이터 구조에 대한 작업
찾다
기본 사상
설명하다
검색은 일반적으로 사용되는 기본 작업입니다.
조회 테이블
동일한 유형의 데이터 요소(또는 레코드) 모음을 나타냅니다.
키워드
데이터 요소(또는 레코드)의 데이터 항목 값입니다.
이 데이터 요소를 식별(식별)하는 데 사용됩니다.
기본 키워드
데이터 요소를 고유하게 식별하는 키워드
보조 키워드
여러 데이터 요소를 식별할 수 있는 키워드를 나타냅니다.
검색 결과
검색 성공
검색 실패
평균 검색 길이
검색 프로세스를 주어진 키워드 값과 비교해야 하는 예상 횟수입니다.
조회 테이블의 기본 작업
정적 조회 테이블
특정 데이터 요소가 조회 테이블에 있는지 쿼리
데이터 요소의 다양한 속성 검색
동적 조회 테이블
데이터 요소 삽입
데이터 요소 삭제
"정적 조회 테이블" 정보
찾기 방법
분류
순차 검색
절반 검색
프로세스 분석
검색 과정은 이진 트리로 설명할 수 있습니다.
이진 검색 결정(이진) 트리를 구성하는 방법
(1) 현재 검색 구간의 중간 위치 번호를 루트로 취합니다.
(2) 하위 테이블의 왼쪽 절반과 하위 테이블의 오른쪽 절반에 있는 레코드 일련 번호는 각각 루트의 왼쪽 하위 트리와 오른쪽 하위 트리의 노드로 사용됩니다.
청크 단위로 검색
"동적 조회 테이블" 정보
특징
테이블 구조 자체는 검색 프로세스 중에 동적으로 생성됩니다.
테이블 구조 분류
이진 정렬 트리
정의
이진 검색 트리라고도 함
빈 나무일지도 몰라
또는 다음 속성을 가진 이진 트리
왼쪽 하위 트리가 비어 있지 않으면 왼쪽 하위 트리에 있는 모든 노드의 값이 루트 노드의 값보다 작습니다.
오른쪽 하위 트리가 비어 있지 않으면 오른쪽 하위 트리에 있는 모든 노드의 값이 루트 노드의 값보다 큽니다.
왼쪽 및 오른쪽 하위 트리 자체는 이진 정렬 트리입니다.
균형 이진 트리
정의
AVL 트리라고도 함
빈 나무일지도 몰라
또는 다음 속성을 가진 이진 트리
왼쪽 하위 트리와 오른쪽 하위 트리의 높이 차이의 절대값은 1을 초과하지 않습니다.
왼쪽 및 오른쪽 하위 트리 자체는 균형 잡힌 이진 트리입니다.
작동하다
끼워 넣다
LL형 단방향 오른손 밸런싱 트리트먼트
RR형 단방향 왼손 밸런싱 트리트먼트
LR형 먼저 왼쪽, 오른쪽 양방향 회전 밸런스 처리
RL 유형 먼저 오른쪽, 그 다음 왼쪽 양방향 회전 균형 처리
B_차수 m의 트리
정의
빈 나무일지도 몰라
또는 다음 속성을 가진 m-트리
트리의 각 노드에는 최대 m개의 하위 트리가 있습니다.
...
레드 블랙 트리
해시 테이블(또는 해시 테이블)
정의
레코드의 저장 주소는 레코드의 키를 독립 변수로 사용하여 함수(해시 함수라고 함)를 계산하여 얻습니다.
즉, 설정된 해시 함수 H(키)와 충돌 처리 방법을 기반으로 키워드 집합을 제한된 연속 주소 집합(간격)에 매핑하고, 주소 집합에 있는 키워드의 "이미지"를 다음과 같이 사용합니다. 테이블의 레코드 저장 위치
이 매핑 프로세스를 해싱 또는 해싱이라고 합니다.
결과 저장 위치를 해시 주소 또는 해시 주소라고 합니다.
기본 사상
해시 충돌 정보
특정 해시 함수 H와 두 개의 키 K1 및 K2에 대해 K1≠K2이고 H(K1)=H(K2)인 경우 이를 충돌이라고 합니다.
동일한 해시 함수 값을 가진 키워드를 해당 해시 함수의 동의어라고 합니다.
일반적으로 말하면
충돌을 최대한 줄일 수는 있지만 완전히 피할 수는 없습니다. 왜냐하면 해시 함수는 키워드 세트에서 주소 세트로의 이미지이기 때문입니다.
해시 함수는 압축된 이미지이므로 충돌이 불가피합니다.
고려해야 할 주요 문제
해시 함수를 구성하는 방법
일반적인 방법
직접 주소 지정 방법
디지털 분석
정사각형-중간 방법
접는 방법
난수법
나누기 남기기법
해결해야 할 문제
해시 함수는 압축된 이미지 함수여야 하며 저장 공간을 절약하기 위해 압축률을 높여야 합니다.
해시 함수는 좋은 해싱 속성을 가져야 하며 키워드를 저장 영역의 다양한 저장 단위에 최대한 균등하게 매핑해야 합니다.
갈등을 해결하는 방법
일반적인 방법
개방형 주소 지정 방법
체인 주소 방법
다시 만들다
공개 오버플로 영역 만들기
기본 조작
찾다
개념
요소를 저장할 때와 동일한 해시 함수 및 충돌 처리 방법을 사용하여 확인할 레코드의 저장 주소를 계산합니다.
평균 검색 길이
에 따라
해시 함수
갈등을 처리하는 방법
해시 테이블 채우기 비율
"해시 테이블 채우기 요소" 정보
정의
α = 테이블에 로드된 레코드 수 / 해시 테이블의 길이
종류
기본 사상
정의
n개의 레코드를 포함하는 파일의 내용이 {R1, R2,…,R}이고 해당 키워드가 {k1,k2,…,kn}이라고 가정합니다. 정렬 후 배열 {Rj1, Rj2,…,Rjn}이 결정되며, 키워드가 다음과 같은 증가(또는 감소) 관계를 충족하도록 만드세요: kj1≤kj2≤...≤kjn(또는 kj1≥kj2≥...≥kjn).
정렬 방법의 안정성
안정적인 정렬 방식
Ri와 Rj를 동일한 키워드로 기록하며, Ri가 Rj보다 앞서 있습니다. 정렬 후에도 Ri와 Rj의 순서는 변경되지 않습니다.
불안정한 정렬 방법
Ri와 Rj를 동일한 키워드로 기록하며, Ri가 Rj보다 앞서 있습니다. 정렬 후에는 Ri와 Rj의 순서가 바뀔 수 있습니다.
기본 조작
(1) 키워드의 크기를 비교합니다.
(2) 보관방법에 따라 기록의 위치를 이동해야 할 수도 있습니다.
분류
내부 정렬
간단한 정렬
직접 삽입 정렬
버블정렬
단순 선택 정렬
힐소트
힙 정렬
빠른 정렬
병합 정렬
양방향 병합 정렬
기수 정렬
외부 정렬
기본 방법
방법 분류
k-way 균형 병합
연산
기본 사상
알고리즘 이론 연구
알고리즘 설계 기법(/strategy)
"특정 문제를 해결하기 위한 알고리즘을 어떻게 생각해 내나요?"라는 질문에 답하세요.
알고리즘 분석 기법
"알고리즘이 충분히 좋은가요?"라는 질문에 답해 보세요.
정의
알고리즘은 특정 문제를 해결하기 위한 단계를 설명하는 유한한 명령 순서입니다. 이러한 각 명령어는 하나 이상의 작업을 나타냅니다.
알고리즘의 5가지 중요한 특성
유한성
확실성
실행할 수 있음
입력하다
산출
"알고리즘 설계"에 대하여
주요기술
분할정복법, 동적계획법, 탐욕법, 역추적법, 분기제한법, 확률알고리즘, 근사알고리즘
"알고리즘 분석"에 대하여
몇 가지 분석 기준
알고리즘의 정확성, 신뢰성, 단순성 및 이해 가능성
알고리즘의 시간 복잡도와 공간 복잡도
알고리즘 표현
자연어
흐름도
프로그래밍 언어
의사코드
"시간 복잡도"에 대하여
분석하다
정의
주로 알고리즘의 실행 시간, 즉 알고리즘 실행에 필요한 기본 연산 횟수를 분석합니다.
방법
알고리즘의 시간 복잡도를 나타내기 위해 입력 스케일 n을 독립 변수로 사용하여 함수 T(n)을 설정합니다.
다양한 입력에 따라 3가지 상황이 있습니다.
최선의 시나리오
최악의 시나리오
평균적인 상황
프로그레시브 기호
위의 T(n) 방법을 추가로 추상화한 것으로, 실행 시간의 증가율(또는 증가 규모라고 함)만 고려합니다.
분석방법
O 마크
점근적 상한 분석
예:
Ω 기호
점진적인 다음 분석
Θ 기호
점근적 상한 및 점근적 하한 분석, 즉 점근적 컴팩트 바운드 분석
알고리즘 구조
일반적으로 다음과 같이 나눌 수 있습니다.
비재귀적 형태
재귀 형식
주요 시간 복잡도 분석 방법
확장 방법
대체 방법
재귀 트리 방법
주요 방법
기존 알고리즘
분열시켜 정복하라
기본 아이디어
직접적으로 해결하기 어려운 큰 문제를 여러 개의 작은 동일한 문제로 분해하여 개별적으로 분해하고 분할하여 정복할 수 있도록 합니다.
재귀
이는 서브루틴이 일련의 호출 문을 통해 직접 또는 간접적으로 자신을 호출한다는 것을 의미합니다.
기본 요소
경계 조건
재귀 모드
주요 단계
각 재귀 수준의 분할 정복 알고리즘 단계
(1) 분해
(2) 해결
(3) 병합
애플리케이션
병합 정렬
최대 필드 및 질문
동적 프로그래밍
기본 아이디어
직접 해결하기 어려운 큰 문제를 여러 개의 작은 동일한 문제로 나누고 각각을 공격합니다. 분할 정복 접근법과 달리 하위 문제는 독립적이지 않은 경우가 많습니다.
해결된 하위 문제에 대한 답변을 테이블에 저장하고 필요할 때 검색하세요.
주요 단계
(1) 최적해의 성질을 알아낸다
(2) 최적해의 값을 재귀적으로 정의
(3) 상향식으로 최적값을 계산한다.
(4) 최적값 계산 시 얻은 정보를 바탕으로 최적해를 구축한다.
애플리케이션
0-1 배낭 문제
가장 긴 공통 부분 수열(LCS)
탐욕스러운 방법
기본 아이디어
전략은 현재 이용 가능한 정보만을 기반으로 선택을 하고 지역(/근사) 최적의 솔루션을 얻는 것입니다.
알고리즘 형식
재귀 탐욕 알고리즘
반복 탐욕 알고리즘
애플리케이션
활동 선택 문제
배낭 문제
역추적
기본 아이디어
역추적 방법은 솔루션 공간의 조직 구조를 결정한 후 시작 노드(루트 노드)부터 시작하여 깊이 우선 방식으로 전체 솔루션 공간을 검색합니다. 필요한 솔루션을 찾거나 솔루션 공간에 활성 노드가 없을 때까지
솔루션 목표는 제약 조건을 만족하는 모든 솔루션을 찾는 것입니다.
솔루션 공간
문제에 대한 하나 이상의 (최적) 솔루션을 포함해야 합니다.
일반적으로 트리나 그래프 형태로 표현됩니다.
경계 기능
솔루션 공간이 매우 큰 경우가 많기 때문에 효과적으로 검색하려면 검색 프로세스 중에 일부 노드를 정리해야 합니다. 가지치기 판단을 위한 경계함수 설계(가능한 한 빨리, 최대한 많이 가지치기)
주요 단계
(1) 문제의 해결 공간을 정의합니다.
(2) 검색이 용이한 해 공간 구조 결정
(3) 깊이 우선 방식으로 솔루션 공간 검색
점수 체계
재귀적 방식
비재귀적
애플리케이션
0-1 배낭 문제
n 퀸 문제
분기 및 바인딩 방법
기본 아이디어
역추적 방법과 유사하게 문제의 해 공간 트리 T에서 문제의 해를 찾는 알고리즘이기도 하다.
폭 우선 또는 최소 비용 우선 방식으로 솔루션 공간 검색
솔루션 목표는 제약 조건을 충족하는 (최적) 솔루션을 찾는 것입니다.
경계 기능
활성 포인트 테이블에서 다음 확장 노드를 선택하는 다양한 방법에 따라 분류됩니다.
대기열에 있는(FIFO, 선입선출) 분기 및 바인딩 방법
우선순위 큐 분기 및 바인딩 방법
확률적 알고리즘
기본 아이디어
알고리즘이 특정 단계를 수행할 때 다음 진행 방법을 무작위로 선택할 수 있으며, 결과가 더 작은 확률로 잘못될 수 있도록 허용하고 이를 희생하여 알고리즘 실행 시간을 크게 줄일 수 있습니다.
분류
수치 확률 알고리즘
몬테카를로 알고리즘
라스베거스 알고리즘
셔우드 알고리즘
근사 알고리즘
기본 아이디어
최적해 찾기를 포기하고 알고리즘 설계 단순화 및 시간 복잡도 감소를 대가로 최적해를 근사 최적해로 대체
성능 측정
알고리즘의 시간 복잡도
해의 근사 정도
데이터 마이닝 알고리즘
데이터 수집
기본 사상
머신러닝 기법을 활용하여 다양한 데이터(데이터베이스 데이터, 데이터 웨어하우스 데이터, 웹 데이터 등)를 분석하고 마이닝하는 학제간 교과목입니다.
핵심
알고리즘이다
주요 기능
분류
반품
연관 규칙
클러스터링
지능형 최적화 알고리즘
개요
최적화 기술
수학을 기반으로 다양한 공학적 문제에 대한 최적의 솔루션을 해결하는데 사용되는 응용기술입니다.
최적화 분야에서는 이러한 알고리즘 구성의 직관성과 자연스러운 메커니즘으로 인해 종종 "지능형 최적화 알고리즘" 또는 "현대 휴리스틱 알고리즘"이라고 불립니다.
기존 최적화 알고리즘
인공 신경망(ANN)
원칙
연속 또는 불연속 입력 상태에 응답하여 정보를 처리하는 유향 그래프 토폴로지를 갖춘 동적 시스템입니다.
분류
피드포워드 및 피드백 네트워크
분류
BP 알고리즘 기반 다층 순방향 신경망
딥 머신 러닝
심층 신념 네트워크(DBN)
CNN(컨벌루션 신경망)
유전자 알고리즘
시뮬레이션된 어닐링 알고리즘(SA)
타부 검색 알고리즘(TS)
개미 식민지 알고리즘
입자 군집 최적화 알고리즘(PSO)