비디오: The Secret step-by-step Guide to learn Hacking 2024
Dummies 치트 시트를위한 알고리즘의 일부
다음 표에서는 다양한 유형의 데이터 분석에 유용한 알고리즘 및 알고리즘 유형을 설명합니다. (알고리즘
설명 | 유용한 링크 | A * 검색 |
이 알고리즘은 노드를 탐색 할 때 노드 비용을 추적합니다. + 999 (999) (999) h (n)은 노드에 도달하기위한 예상 비용이다. 노드로부터의 목표 | f (n) 는 n에서 목표까지의 경로의 예상 비용입니다. 아이디어는 가장 유망한 경로를 먼저 검색하고 값 비싼 경로를 피하는 것입니다. 스탠포드. edu Balanced Tree 구조 조정을 통해 균형 잡힌 구조를 유지하여 액세스 시간을 단축 할 수있는 트리입니다. 왼쪽에있는 요소의 수는 오른쪽에있는 수와 최대 하나만큼 다릅니다. Webdocs
양방향 검색
이 기술은 두 검색 경로가 중간에서 만날 때까지 루트 노드와 목표 노드에서 동시에 검색합니다. 이 방법의 장점은 다른 많은 무차별 대용 솔루션보다 솔루션을 더 빨리 찾을 수 있으므로 시간이 효율적이라는 것입니다. 또한 다른 방법보다 메모리를 더 효율적으로 사용하며 항상 솔루션을 찾습니다. 가장 큰 단점은 구현이 복잡하다는 것입니다. 기획. cs 이진 트리 이 노드는 0 (리프 노드), 1 또는 2 (분기 노드) 다른 노드에 연결되는 노드를 포함하는 트리 유형입니다. 각 노드는 연결성 및 데이터 저장을 위해 포함해야하는 세 가지 요소, 즉 데이터 저장소, 왼쪽 연결 및 오른쪽 연결을 정의합니다. cs. cmu이다. edu 폭 넓은 우선 검색 이 기술은 루트 노드에서 시작하여 각 하위 노드를 먼저 탐색 한 후 다음 수준으로 이동합니다. 솔루션을 찾을 때까지 레벨별로 단계적으로 진행됩니다. 이 알고리즘의 단점은 모든 노드를 메모리에 저장해야한다는 것입니다. 즉, 많은 수의 노드에 대해 상당한 양의 메모리를 사용합니다. 이 기술은 중복 노드를 검사 할 수 있으므로 시간이 절약되고 솔루션이 항상 제공됩니다. Khan Academcy |
Brute Force |
이것은 가능한 모든 해결책을 시도하여 최상의 문제 해결 방법을 찾는 문제 해결 기법입니다. 브 루트 포스 기술은 존재할 때 최적의 솔루션을 보장하지만 대부분의 사람들이이를 피할 수 있도록 구현하는 데 많은 시간을 필요로합니다. | Igm. Depth-First Search | 이 기술은 루트 노드에서 시작하여 리프 노드에 도달 할 때까지 연결된 자식 노드 집합을 탐색합니다. 솔루션을 찾을 때까지 분기별로 분기를 진행합니다. 이 알고리즘의 단점은 중복 노드를 검사 할 수 없다는 것입니다. 즉 동일한 노드 경로를 두 번 이상 통과 할 수 있다는 의미입니다. 사실,이 알고리즘은 전혀 해결책을 찾지 못할 수 있습니다. 즉, 알고리즘을 무한히 검색하지 못하도록 컷오프 지점을 정의해야합니다. 이 방법의 장점은 메모리가 효율적이라는 것입니다. |
해커 어스 | Divide and Conquer | 이것은 문제를 가장 작은 조각으로 분해하고 가능한 가장 간단한 방법으로 해결하는 문제 해결 기법입니다. 이 기술은 무차별 대입과 같은 다른 접근법과 비교할 때 상당한 시간과 자원을 절약합니다. 그러나 항상 최상의 결과를 보장하지는 않습니다. |
칸 아카데미 | Dijikstra | 이것은 지시 된 가중치 그래프 (양수 가중치) 그래프에서 최단 경로를 찾는 데 사용되는 알고리즘입니다. |
Geeks for Geeks | 그래프 | 그래프는 트리 확장의 일종입니다. 나무와 마찬가지로 관계를 형성하기 위해 서로 연결되는 노드가 있습니다. 그러나 이진 트리와 달리 그래프에는 두 개 이상의 연결이있을 수 있습니다. 사실, 그래프 노드는 종종 수많은 연결을 가지고 있습니다. GPS의지도와 같은 장소에서 사용되는 그래프와 트리의 하향식 접근 방식이 작동하지 않는 모든 종류의 다른 장소를 볼 수 있습니다. |
자습서 | Greedy Algorithms | 문제 해결 과정의 모든 단계에서 최상의 해결책을 찾는 문제 해결 중 하나입니다. 욕심 많은 알고리즘은 일반적으로 두 가지 가정을합니다. |
|
주어진 단계에서 단일 최적 선택을하는 것이 가능합니다. 각 단계에서 최적의 선택을 선택함으로써, 전체적인 문제에 대한 최적의 솔루션을 찾는 것이 가능하다. | 자습서 |
탐욕스러운 최우선 검색 (BFS) | 알고리즘은 항상 다음 방정식을 사용하여 목표에 가장 가까운 경로를 선택합니다. | f (n) |
= | h n) | . 이 특정 알고리즘은 솔루션을 매우 빨리 찾을 수는 있지만 루프에서 멈출 수 있으므로 많은 사람들이 솔루션을 찾는 최적의 방법이라고 생각하지 않습니다. Centurion2 |
해싱 (Hashing) | 실제로 데이터 구조를 찾기 전에 데이터 구조 (특정 구조 일 수 있음)에서 특정 데이터 항목의 위치를 예측하는 방법입니다. 이 접근법은 색인에 배치 된 키의 사용에 의존합니다. 해시 함수는 키를 알고리즘이 해시 테이블에 배치하는 숫자 값으로 변환합니다. 해시 테이블은 알고리즘이 데이터 위치를 쉽게 예측할 수 있도록 데이터 구조의 요소를 가리키는 인덱스를 만드는 방법을 제공합니다. | 자습서 |
힙 | 트리 구조에 데이터를 삽입 할 수있는 정교한 트리입니다. 데이터 삽입을 사용하면 정렬이 빨라집니다. 트리에서 최대 또는 최소 값을 즉시 제공하는 트리의 기능에 따라 이러한 트리를 최대 힙 및 최소 힙으로 더 분류 할 수 있습니다.
자습서
경험적 발견 (Heuristics) 이것은 자기 발견을 기반으로하는 문제 해결 기법으로, 문제를 해결할 수있는 충분히 유용한 결과를 제공한다. 필요하지 않습니다. 자체 발견은 알고리즘이 당신에게 솔루션에 대한 잠재적으로 유용한 경로를 보여줄 수 있도록하는 프로세스입니다. 그러나 솔루션이 올바른지 여부를 알기 위해서는 인간의 직관력과 이해력에 의지해야합니다. |
노스 웨스트. edu |
MapReduce | 알고리즘을 병렬로 계산하여 (네트워크에 연결된 여러 대의 컴퓨터를 사용하여) 알고리즘을 작동하도록하는 프레임 워크입니다. Hadoop Apache Mergesort Mergesort는 데이터를 정렬하는 범용의 비교 기반 방법입니다. 그것은 업무 수행에 대한 분단 및 정복 방식에 달려 있습니다. 괴짜 괴짜 | Nash Equilibrium |
이것은 다른 플레이어가 다른 플레이어의 평형 전략을 알고 있기 때문에 아무도 자신의 전략을 바꾸지 않고 얻을 수있는 게임 이론입니다. 이 이론은 플레이어가 게임에서 이기기 위해 모든 다른 플레이어가 내리는 결정을 설명해야하는 적대적인 상황에서 사용되는 것을 봅니다. | 칸 아카데미 | PageRank |
PageRank는 그래프에서 노드의 중요도를 측정하는 알고리즘입니다. 이 알고리즘은 사용자에게 관련 검색어를 제공하기위한 Google 핵심 알고리즘의 근간을 이루고 있습니다. 프린스턴. edu | 순수 휴리스틱 검색 | 이 알고리즘은 비용 순서대로 노드를 확장합니다. 두 개의 목록을 유지 관리합니다. 닫힌 목록에는 이미 탐색 한 노드가 포함되며 열린 목록에는 아직 탐색해야하는 노드가 포함됩니다. 각 반복에서 알고리즘은 가능한 최저 비용으로 노드를 확장합니다. 모든 하위 노드가 닫힌 목록에 배치되고 개별 자식 노드 비용이 계산됩니다. 알고리즘은 저렴한 비용으로 하위 노드를 열린 목록으로 다시 보내고 높은 비용으로 하위 노드를 삭제합니다. 결과적으로 알고리즘은 솔루션에 대한 지능형 비용 기반 검색을 수행합니다. |
World of Computing | Quicksort | 이것은 데이터 배열을 작은 배열로 나누는 것을 기반으로하는 범용 정렬 전략입니다. 그것은 업무 수행에 대한 분단 및 정복 방식에 달려 있습니다. |
자습서 | 불균형 트리 | 균형을 고려하지 않고 필요한 경우 트리에 새 데이터 항목을 배치하는 트리입니다. 이 항목을 추가하는 방법은 트리를 빠르게 작성하지만 검색 또는 정렬시 액세스 속도를 줄입니다. |
쿠오 라 | -> |