Computer Science에서 배우는 개념은 보여줄 때까지 아무 소용이 없습니다. 문제는 해결해야 할 주요 관심사이므로 알고리즘은 일반적인 문제 해결 방법에 대한 간단한 계획입니다. 따라서 컴퓨터 과학 세계에서 주요 관심사입니다.
나는 컴퓨터 과학의 거의 모든 측면에서 알고리즘이 필요하다고 생각한다.
오토마타
파워 셋 구성. 비 결정적 오토 마톤을 결정 론적 오토 마톤으로 변환하는 알고리즘.
Todd-Coxeter 알고리즘. 코셋 생성 절차.
인공 지능
알파-베타. 알파 최대 + 베타 최소 보드 게임에서 널리 사용됩니다.
개미 알고리즘. 개미 식민지 최적화는 문제를 해결하고 두 위치 사이에서 가장 좋은 경로를 찾기 위해 개미 행동에서 영감을 얻은 알고리즘 세트입니다.
DE (차등 진화). Chebyshev 다항식 피팅 문제를 해결하십시오.
온라인 제품 리뷰에서 Sarcastic 문장의 반 감독 인식 . 트윗이나 온라인 문서에서 사 카리스 또는 아이러니를 인식하는 알고리즘. 이러한 알고리즘은 휴머노이드 로봇 프로그래밍에도 필수적입니다.
컴퓨터 시각 인식
발췌. 작은 이미지 나 이미지를 나타냅니다.
이미지에서 개체를 계산합니다 . 연결된 컴포넌트 레이블 알고리즘을 사용하여 각 오브젝트에 먼저 레이블을 지정한 다음 오브젝트를 계산합니다.
O'Carroll 알고리즘. 곤충 비전의 수학적 변환에서이 알고리즘은 물체를 피하는 방법을 평가합니다.
유전자 알고리즘
그들은 세 개의 연산자를 사용합니다. 선택 (솔루션 선택), 복제 (선택된 솔루션을 사용하여 다른 솔루션 구성), 교체 (더 나은 경우 솔루션 교체).
체력 비례 선택. 룰렛 휠 선택이라고도하며 솔루션 선택에 사용되는 기능입니다.
잘림 선택. 피트니스별로 정렬 된 솔루션을 선택하는 또 다른 방법입니다.
토너먼트 선택. 토너먼트 종류에 따라 최상의 솔루션을 선택하십시오.
확률 적 범용 샘플링. 개인은 선의 연속적인 세그먼트에 매핑되어 각 개인의 세그먼트는 룰렛 휠 선택에서와 정확하게 일치하도록 크기가 동일합니다.
신경망
홉 필드 넷. 이진 임계 값 단위를 가진 컨텐츠 주소 지정 가능 메모리 시스템 역할을하는 반복적 인 인공 신경망. 그들은 안정적인 상태로 수렴합니다.
역 전파. 인공 신경망 훈련에 사용되는지도 학습 기법.
자가 조직도 (고호 넨지도). 신경 네트워크는 비지도 학습을 사용하여 훈련 샘플의 저 차원 (2D, 3D) 표현을 생성하도록 훈련되었습니다. 고차원 데이터를 시각화하는 데 좋습니다.
생물 정보학
Needleman-Wunsch. 단백질 또는 뉴클레오티드 서열에 대해 2 개의 서열에 대해 전체 정렬을 수행합니다.
스미스 워터맨 Needleman-Wunsch의 변형.
압축
무손실 압축 알고리즘
버로우즈 휠러 변환. 무손실 압축을 개선하는 데 유용한 전처리.
꺾다. ZIP이 사용하는 데이터 압축.
델타 인코딩. 순차적 데이터가 자주 발생하는 데이터 압축을 지원합니다.
증분 인코딩. 문자열 시퀀스에 델타 인코딩이 적용되었습니다.
LZW. (Lempel-Ziv-Welch). LZ78의 후계자. 압축 할 데이터에서 변환 테이블을 작성합니다. GIF 그래픽 형식으로 사용됩니다.
LZ77 및 78. 추가 LZ 변형 (LZW, LZSS 등)의 기초. 둘 다 사전 코더입니다.
LZMA. Lempel-Ziv-Markov chain-Algorithm의 약어입니다.
LZO. 속도에 중점을 둔 데이터 압축 알고리즘.
PPM(부분 매칭에 의한 예측). 컨텍스트 모델링 및 예측에 기반한 적응 형 통계 데이터 압축 기술. Shannon-Fano 코딩. 일련의 기호 및 해당 확률을 기반으로 접두사 코드를 구성합니다.
잘린 이진. 유한 알파벳으로 균일 한 확률 분포에 일반적으로 사용되는 엔트로피 인코딩. 이진 인코딩을 향상시킵니다.
실행 길이 인코딩 동일한 코드 시퀀스를 발생 횟수로 대체하는 기본 압축.
후유증. 문자열에 대한 증분 문법 추론.
EZW (임베디드 제로 트리 웨이블릿). 정확도를 높이면서 이미지를 비트 스트림으로 압축하는 프로그레시브 인코딩 더 나은 결과로 압축 손실이 발생할 수 있습니다.
엔트로피 인코딩
코드 길이를 심볼의 확률과 일치시키기 위해 코드에 심볼을 할당 하는 코딩 체계.
허프만 코딩. 상대적인 문자 주파수를 활용하는 간단한 무손실 압축.
적응 형 허프만 코딩. 허프만 코딩에 기초한 적응 적 코딩 기술.
산술 코딩. 고급 엔트로피 코딩.
범위 인코딩. 산술 코딩과 동일하지만 약간 다른 방식으로 살펴 보았습니다.
단항 코딩. n이 n 인 숫자 n과 그 뒤에 0을 나타내는 코드입니다. Elias 델타, 감마, 오메가 코딩. 양의 정수를 인코딩하는 범용 코드. 피보나치 코딩. 양의 정수를 이진 코드 워드로 인코딩하는 범용 코드.
골롬 코딩. 기하학적 분포에 따라 알파벳에 최적 인 엔트로피 코딩 형태.
쌀 코딩. 기하학적 분포에 따라 알파벳에 최적 인 엔트로피 코딩 형태.
손실 압축 알고리즘
선형 예측 코딩. 압축 된 형태로 디지털 음성 신호의 스펙트럼 엔벨로프를 표현함으로써 손실 압축.
법칙 알고리즘. 표준 컴 팬딩 알고리즘.
Mu-law 알고리즘. 표준 아날로그 신호 압축 또는 컴 팬딩 알고리즘.
프랙탈 압축. 프랙탈을 사용하여 이미지를 압축하는 데 사용되는 방법입니다.
변환 코딩. 오디오 신호 또는 사진 이미지와 같은 데이터의 데이터 압축 유형.
벡터 양자화. 손실 데이터 압축에 자주 사용되는 기술입니다.
웨이블릿 압축. 이미지 및 오디오 압축에 적합한 데이터 압축 형식입니다.
암호화
비밀 키 (대칭 암호화)
암호 해독 및 암호화에 비밀 키 (또는 직접 관련된 키 쌍)를 사용하십시오.
Rijndael이라고도하는 AES (Advanced Encryption Standard) .
복어. Schneier가 노화 알고리즘을 대체하기 위해 범용 알고리즘으로 설계했습니다.
DES (Data Encryption Standard) , 이전 DE 알고리즘.
IDEA (International Data Encryption Algorithm) . DES를 대체 한 이전의 IPES (개선 된 PES). PGP (Pretty Good Privacy)에서 사용합니다. 키를 사용하여 블록으로 분할 된 데이터에 대한 변환을 수행합니다.
RC4 또는 ARC4. 인터넷 트래픽 용 SSL 및 무선 네트워크 용 WEP와 같은 프로토콜에서 널리 사용되는 스트림 암호.
작은 암호화 알고리즘. 일부 수식을 사용하여 블록 암호 알고리즘을 쉽게 구현할 수 있습니다.
PES (제안 된 암호화 표준). IDEA의 이전 이름.
공개 키 (비대칭 암호화)
공개 키 및 개인 키로 지정된 키 쌍을 사용하십시오. 공개 키는 메시지를 암호화하며 개인 키만 메시지를 해독 할 수 있습니다.
DSA (Digital Signature Algorithm). 소수와 난수로 키를 생성하십시오. 미국 대행사에서 사용되었으며 현재는 공개 도메인입니다.
엘가 말. GNU Privacy Guard 소프트웨어, PGP 및 기타 암호화 시스템에서 사용하는 Diffie-Hellman을 기반으로합니다.
RSA (Rivest, Shamir, Adleman). 전자 상거래 프로토콜에 널리 사용됩니다. 소수를 사용하십시오.
Diffie-Hellman (Merkle) 키 교환 (또는 지수 키 교환). 보호되지 않은 통신 채널을 통해 비밀을 공유하는 방법 및 알고리즘 RSA에서 사용합니다.
NTRUEncrypt. 컨볼 루션 곱셈으로 다항식 고리를 사용합니다.
메시지 요약 기능
메시지 다이제스트는 해시 함수에 의해 처리되는 임의 길이의 문자열 또는 데이터를 암호화 한 코드입니다.
MD5. CD 또는 DVD의 ISO 이미지를 확인하는 데 사용됩니다.
RIPEMD (RACE Integrity Primitives 평가 메시지 다이제스트). MD4의 원칙을 기반으로하며 SHA-1과 유사합니다.
SHA-1 (보안 해시 알고리즘 1). SHA 관련 암호화 해시 함수 집합에서 가장 일반적으로 사용됩니다. NSA 에이전시에 의해 설계되었습니다.
HMAC. 키 해시 메시지 인증.
타이거 (TTH). 일반적으로 Tiger 트리 해시에 사용됩니다.
암호화 사용하여 의사 난수를
참조하십시오. 난수 생성기
암호화 기법
비밀 공유, 비밀 분할, 키 분할, M / N 알고리즘
샤미르의 비밀 공유 체계. 다항식 보간법에 기반한 공식입니다.
Blakley의 비밀 공유 체계. 본질적으로 기하학적이며 비밀은 m 차원 공간의 요점입니다.
다른 기술과 암호 해독
부분 집합. 정수 세트가 주어지면 부분 집합의 합계가 0입니까? 암호화에 사용됩니다.
쇼어 알고리즘. RSA와 같은 비대칭 함수를 기반으로 코드를 해독 할 수있는 양자 알고리즘.
기하학
선물 포장. 일련의 점의 볼록 껍질 결정.
길버트 존슨 키어 티 거리. 두 볼록한 모양 사이의 최소 거리를 결정합니다.
그레이엄 스캔. 평면에서 일련의 점의 볼록 껍질 결정.
선분 교차. 선이 스윕 선 알고리즘과 교차하는지 확인
다각형을 가리 킵니다. 주어진 지점이 주어진 지점 내에 있는지 테스트합니다.
레이 / 평면 교차.
* 선 / 삼각형 교차점 * 레이 / 평면 교차점의 특별한 경우.
암시 적 표면의 다각형 화. 다각형으로 대략적인 암시 적 표면.
삼각 분할.거리가 알려진 각도에서 다른 점까지의 거리를 평가하는 방법입니다.
3D 표면 추적기 기술 그래프 . 숨겨진 표면을 고려하면서 비디오의 벽에 이미지를 추가하는 프로세스입니다.
벨맨 포드. 가중치 그래프에서 가장 짧은 경로를 계산합니다 (가장자리 가중치 중 일부는 음수 일 수 있음).
Dijkstra의 알고리즘. 음수가 아닌 모서리 가중치를 사용하여 그래프에서 최단 경로를 계산합니다.
섭동 방법. 그래프에서 로컬로 가장 짧은 경로를 계산하는 알고리즘입니다.
플로이드 워샬 가중, 방향 그래프로 모든 쌍의 최단 경로 문제를 해결합니다.
플로이드의 사이클 찾기. 반복주기를 찾습니다.
존슨 희소 가중 지향 그래프에서 모든 쌍의 최단 경로 알고리즘.
크루 칼.그래프의 최소 스패닝 트리를 찾습니다.
프라임 그래프의 최소 스패닝 트리를 찾습니다. DJP, Jarník 또는 Prim-Jarník 알고리즘이라고도합니다.
* Boruvka. * 그래프의 최소 스패닝 트리를 찾습니다.
포드 풀 커슨 그래프에서 최대 흐름을 계산합니다.
에드몬드-카프 포드 풀 커슨의 구현.
비 차단 최소 스패닝 스위치. 전화 교환.
우드 하우스 샤프. 그래프의 최소 스패닝 트리를 찾습니다.
스프링 기반. 그래프 그리기 알고리즘.
헝가리 인. 완벽한 매칭을위한 알고리즘.
채색 알고리즘. 그래프 채색 알고리즘.
가장 가까운 이웃.가장 가까운 이웃을 찾으십시오.
토폴로지 정렬. 방향에 따라 모서리가있는 모든 노드 앞에 각 노드가 오도록 방향성 비순환 그래프를 정렬합니다.
Tarjan의 오프라인 최소 공통 조상 알고리즘. 트리의 노드 쌍에 대해 가장 낮은 공통 조상을 계산합니다.
제도법
브레 젠햄 라인 알고리즘. 결정 변수를 사용하여 지정된 두 점 사이에 직선을 그립니다.
풍경 3D 풍경을 그립니다.
* DDA 선 알고리즘. * 부동 소수점 연산을 사용하여 지정된 두 점 사이에 직선을 그립니다.
홍수 채우기. 연결된 영역을 색으로 채 웁니다.
이미지 복원. 사진을 복원하고 이미지를 개선하십시오.
Xiaolin Wu의 라인 알고리즘. 앤티 앨리어싱
화가의 알고리즘. 3 차원 풍경에서 보이는 부분을 감지합니다.
광선 추적. 현실적인 이미지 렌더링.
퐁 쉐이딩. 3D 컴퓨터 그래픽의 조명 모델 및 보간 방법.
Gouraud 음영.3D 객체 표면에서 빛과 색상의 다양한 효과를 시뮬레이션합니다.
스캔 라인 렌더링. 허 수선을 움직여 이미지를 구성합니다.
글로벌 일루미네이션. 다른 물체로부터의 직접 조명 및 반사를 고려합니다.
보간. 디지털 줌과 같은 새로운 데이터 포인트 구성.
재 합성기. 사진에서 개체를 제거하고 Photoshop 및 The Gimp에서 사용하는 배경을 다시 작성하십시오. 신디사이저 자습서.
슬로프 인터셉트 알고리즘. 선을 그리기위한 기울기-절편 공식의 구현입니다.
스플라인 보간. Runge 현상으로 인한 오류를 줄입니다.
3D 표면 추적기 기술. 비데오의 벽에 이미지 또는 비데오 추가, 숨겨진 표면이 고려됩니다.
리스트, 배열 및 트리
수색
사전 검색. 예측 검색을 참조하십시오.
선택 알고리즘. 목록에서 k 번째로 큰 항목을 찾습니다.
이진 검색 알고리즘. 정렬 된 목록에서 항목을 찾습니다.
너비 우선 검색. 레벨별로 그래프 레벨을 이동합니다.
깊이 우선 검색. 분기별로 그래프 분기를 통과합니다.
최고의 검색. 우선 순위 대기열을 사용하여 중요한 순서대로 그래프를 이동합니다.
트리를 검색합니다. * 사용 휴리스틱 속도를 개선하는 것이 가장 우선 탐색의 특별 케이스.
균일 한 비용 검색. 비용이 다양한 최저 비용 경로를 찾는 트리 검색.
예측 검색.검색어의 크기와 검색에서 높고 낮은 값을 고려하는 검색과 같은 이진입니다.
해시 테이블. 정렬되지 않은 컬렉션의 항목에 키를 연결하여 선형 시간에 검색합니다.
보간 된 검색. 예측 검색을 참조하십시오.
정렬
이진 트리 정렬. 삽입 정렬과 유사한 이진 트리의 정렬입니다.
보고 소트. 책상 카드의 비효율적 인 임의 종류.
버블 정렬. 각 인덱스 쌍에 대해 순서가 맞지 않으면 항목을 교체하십시오.
버킷 정렬. 버킷으로 목록을 분할하고 개별적으로 정렬하십시오. 비둘기 구멍 정렬을 일반화합니다.
칵테일 종류 (또는 양방향 버블, 셰이커, 리플, 셔틀, 해피 아워 정렬). 양방향으로 정렬되는 버블 정렬의 변형은 각각 목록을 통과합니다.
빗 정렬. 목록의 끝 부분에있는 작은 값인 "거북이"를 제거하고 12 개의 값 사이의 간격을 사용하는 기포 정렬의 효율적인 변형입니다.
카운팅 정렬.리스트 A의 숫자 범위를 사용하여이 길이의 배열 B를 작성합니다. B의 인덱스는 A보다 i보다 작은 값을 가진 요소 수를 계산하는 데 사용됩니다.
그놈 정렬. 버블 정렬에서와 같이 요소를 적절한 위치로 이동시키는 것은 일련의 스왑에 의해 수행된다는 점을 제외하고는 삽입 정렬과 유사합니다.
힙 정렬. 목록을 힙으로 변환하고 힙에서 가장 큰 요소를 계속 제거하고 목록 끝에 추가하십시오.
삽입 정렬. 정렬 된 항목 목록에서 현재 항목이 속하는 위치를 결정한 후 삽입하십시오.
소개. 또는 내성적 인 종류. 빠른 정렬에서 시작하여 특정 재귀 수준에서 힙 정렬로 전환합니다.
정렬을 병합하십시오.목록의 전반과 후반을 개별적으로 정렬 한 다음 정렬 된 목록을 병합하십시오.
팬케이크 종류. 시퀀스의 일부 접두사의 요소를 반전시킵니다.
비둘기 구멍 종류. 정렬 할 배열의 모든 요소로 빈 배열을 순서대로 채 웁니다.
우편 배달부 정렬. 우체국에서 사용하는 계층 적 버킷 정렬.
퀵 정렬. 목록을 두 개로 나누십시오. 첫 번째 목록의 모든 항목이 두 번째 목록의 모든 항목 앞에옵니다.; 그런 다음 두 목록을 정렬하십시오. 종종 선택 방법.
기수 정렬. 숫자를 처리하여 항목 또는 정수와 관련된 키를 정렬합니다.
선택 정렬 나머지 요소 중 가장 작은 요소를 선택하여 정렬 된 목록의 끝에 추가하십시오.
쉘 정렬.값 사이의 간격을 사용하여 삽입 정렬을 향상시킵니다.
스무스 정렬. heapsort를 참조하십시오.
확률 론적 정렬. 보고 소트 참조.
그리고 더 많은...