프로젝트 소개
이 저장소는 Java로 작성된 알고리즘 및 자료구조 구현의 선별된 모음으로, 일반적인 계산 기법의 정확하고 우아한 구현을 보여주기 위해 설계되었습니다. 개발자와 학생을 위한 참조 라이브러리이자 교육 자료로 사용됩니다.
프로젝트는 주요 섹션으로 구성된 광범위한 주제를 다룹니다:
**자료구조**: 균형 트리(AVL, 레드-블랙), 이진 탐색 트리, 스플레이 트리, 동적 배열, 펜윅 트리, 피보나치 힙, 해시 테이블(여러 충돌 해결 전략 포함), 연결 리스트, 우선순위 큐(이진 힙, D-힙, 인덱스 변형), 큐, 세그먼트 트리, 스파스 테이블, 스택, 접미사 배열, 트라이, 유니온-파인드 구조를 포함합니다.
**동적 프로그래밍**: 동전 교환, 편집 거리, 배낭 변형, 최대 연속 부분 배열, 최장 공통/증가/회문 부분 수열, 외판원 문제, 최소 가중 완전 매칭과 같은 고전 문제를 다룹니다. 타일링 문제 및 임시 도전 과제와 같은 실용적인 예제도 포함합니다.
**기하학**: 2D 및 3D 벡터 연산, 원과 선 교차 알고리즘, 최근접 점 쌍, 볼록 껍질 구성(그레이엄 스캔 및 모노톤 체인), 다각형 면적 및 포함 검사, 삼각형 면적 계산, 지리적 거리 계산을 다룹니다.
**그래프 이론**: 트리 알고리즘(루팅, 동형, 중심, 지름, LCA), 네트워크 흐름 알고리즘(포드-풀커슨, 에드몬즈-카프, 디닉, 용량 스케일링, 최소 비용 최대 흐름), 그리고 BFS, DFS, 다익스트라, 벨만-포드, 플로이드-워셜, 위상 정렬, 최소 신장 트리(크루스칼, 프림, 보루브카), 강한 연결 요소(타잔, 코사라주), 절단점, 브리지, 오일러 경로와 같은 핵심 알고리즘을 포함하는 상당한 섹션입니다.
**선형 대수**: 가우스 소거법, 행렬 연산(행렬식, 역행렬, 곱셈, 거듭제곱), 프레이발트 알고리즘, 선형 점화식 해결사를 포함합니다.
**수학**: 중국인의 나머지 정리, 소수 체, 오일러의 토션트 함수, 확장 유클리드 알고리즘, GCD, 고속 푸리에 변환을 포함한 정수론 주제를 다룹니다.
프로젝트는 빌드 시스템으로 Bazel을 사용하며(JDK 8+ 필요), 개별 알고리즘 실행 또는 전체 테스트 스위트 실행에 대한 명확한 지침을 제공합니다. 많은 구현에는 William Fiset YouTube 채널의 동반 비디오 설명이 포함되어 시각적 학습자에게 접근성을 제공합니다. 각 알고리즘 항목에는 일반적으로 시간 복잡도가 포함되며, 코드는 일관된 명명 규칙으로 주제별로 구성됩니다. 저장소는 MIT 라이선스로 배포되며 Bazel 테스트 및 README URL 검사를 위한 CI/CD 배지를 포함합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.