지난 수십 년 동안 어떤 세계에서 가장 중요한 알고리즘이 인류에게 가장 큰 기여를 했습니까?
나는 이것이 개발자가 알아야 할 일반적인 지식이라고 생각했다.
업데이트 :
가능하면 특정 프로그래밍 알고리즘에 대한 답변을 유지하십시오 .
가장 중요한 것의 목록을 얻고 싶습니다. 답 당 하나의 알고리즘 만 있습니다.
알고리즘이 중요하고 중요한 이유를 설명하십시오.
지난 수십 년 동안 어떤 세계에서 가장 중요한 알고리즘이 인류에게 가장 큰 기여를 했습니까?
나는 이것이 개발자가 알아야 할 일반적인 지식이라고 생각했다.
업데이트 :
가능하면 특정 프로그래밍 알고리즘에 대한 답변을 유지하십시오 .
가장 중요한 것의 목록을 얻고 싶습니다. 답 당 하나의 알고리즘 만 있습니다.
알고리즘이 중요하고 중요한 이유를 설명하십시오.
답변:
공개 / 개인 키 암호화는 매우 중요합니다. 인터넷 상거래는 그것 없이는 어디에나있을 수 없습니다.
알고리즘 은 네트워크의 두 노드 간 최상의 경로 를 식별하기 위해 전 세계 모든 라우터 에 존재 합니다.
FFT는 샘플링 된 신호 에서 유용한 정보를 추출 하는 데 매우 중요하고 널리 사용되는 방법입니다 .
FFT (고속 푸리에 변환)는 이산 푸리에 변환 (DFT)과 그 역을 계산하는 효율적인 알고리즘입니다.
PageRank는 Google 인터넷 검색 엔진 에서 Larry Page의 이름을 따서 명명 한 링크 분석 알고리즘으로, 해당 웹 사이트를 "측정"하기 위해 월드 와이드 웹과 같은 하이퍼 링크로 연결된 문서 세트의 각 요소에 숫자 가중치를 지정합니다. 세트 내에서의 중요성.
컴퓨터 과학 및 정보 이론에서, 데이터 압축 또는 소스 코딩은 특정 인코딩 방식을 사용하여 인코딩되지 않은 표현이 사용하는 것보다 적은 비트 (또는 다른 정보 보유 단위)를 사용하여 정보를 인코딩하는 프로세스입니다.
너무 많이 가져올 수 있으므로 의견을 말 해주세요.
그러한 예 중 하나가 Smith-Waterman 및 Needleman-Wunsch 알고리즘과 근사치라고 생각합니다. 그들 모두 본질적으로 같은 일을하고 있습니다 : 그들은 둘 이상의 문자열 (시퀀스) 을 정렬 합니다. 생물학에는 의미가 있습니다. DNA 또는 단백질 서열이 정렬되면 구조적, 기능적 및 진화 적 유사성의 영역이 드러난다.
Smith-Waterman과 비슷한 휴리스틱은 BLAST입니다. 생물학적 유사성을 위해 큰 데이터베이스의 시퀀스를 검색 할 수 있습니다. BLAST의 인기는 정말 대단합니다. 생물학에서 가장 널리 사용되는 알고리즘 일 것입니다. Bioinformatics 및 Genomics의 새로운 영역에는 BLAST보다 더 정확한 Smith-Waterman / Needleman-Wunsch 알고리즘의 새롭고 더 나은 근사가 있습니다.
BLAST보다 빠른 Smith-Waterman과 Needleman-Wunsch의 고 처리량 근사법은 샷건 시퀀싱에서 게놈을 조립하는 데 사용됩니다. 시퀀서 기계의 제품은 게놈의 임의 부분에서 대량의 DNA 판독 (수십)을 얻습니다. 매우 짧음 (50 내지 100 개 뉴클레오티드). 이 접근법은 인간 게놈 프로젝트를 완료하는 데 사용되었습니다. 모든 현대 시퀀싱은 이런 식으로 수행됩니다.
수많은 다중 시퀀스 정렬 알고리즘이 존재합니다.이 알고리즘은 다중 시퀀스 버전의 Smith-Waterman / Needleman-Wunsch와 비슷합니다. 다수의 서열은 서로 동시에 그룹으로서 정렬된다. 쌍으로 대응하는 것보다 훨씬 어려운 문제이지만 솔루션은 생물학적 기능, 구조 및 관련 서열의 진화 이력에 대해 훨씬 더 많은 통찰력을 제공합니다.
시암은 다음을 20 세기의 가장 중요한 알고리즘으로 명명했습니다.
1946 : Monte Carlo의 대도시 알고리즘 . 임의의 프로세스를 사용하여이 알고리즘은 너무 복잡하여 정확하게 해결하기 어려운 문제에 대한 해결책으로 효율적으로 넘어갈 수 있습니다.
1947 : 선형 프로그래밍을위한 단순한 방법 . 계획 및 의사 결정에서 일반적인 문제에 대한 우아한 솔루션입니다.
1950 : Krylov 부분 공간 반복 방법 . 과학 계산에 풍부한 선형 방정식을 빠르게 풀기위한 기술.
1951 : 행렬 계산에 대한 분해 접근법 . 수치 선형 대수에 대한 기술 모음.
1957 : 포트란 최적화 컴파일러 . 고급 코드를 컴퓨터가 읽을 수있는 효율적인 코드로 변환합니다.
1959 : 고유 값 계산을위한 QR 알고리즘 . 또 다른 중요한 매트릭스 작업은 신속하고 실용적이었습니다.
1962 : 정렬을위한 퀵 정렬 알고리즘 . 큰 데이터베이스를 효율적으로 처리합니다.
1965 : 고속 푸리에 변환 . 아마도 오늘날 가장 보편적으로 사용되는 알고리즘은 파형과 같은 파형을 주기적 구성 요소로 나눕니다.
1977 : 정수 관계 감지 . 관련이없는 것처럼 보이는 숫자 모음으로 만족하는 간단한 방정식을 발견하는 빠른 방법입니다.
1987 : 빠른 다중 극 방법 . n-body 계산의 복잡성을 다루는 획기적인 기술로, 천체 역학에서 단백질 접힘에 이르기까지 다양한 문제에 적용됩니다.
오늘 컴퓨터에서 가장 많이 사용되는 3 가지 주요 알고리즘을 나열해야한다면 다음과 같이 말할 것입니다.
이진 검색 알고리즘은 정렬 된 목록 내에서 항목을 좁힐 지속적으로 사용되는 대부분의 인덱스 조회는 어떤 점에서이 라인을 따라 뭔가를 사용합니다. 이 알고리즘은 o (log n) 시간에 정렬 된 목록을 검색합니다.
퀵 알고리즘은 마지막 회 (N ^ 2) 최악의 경우 평균 케이스와 O를 O로 분류 내려 (N N 로그) 할 수 있었다. 정렬은 컴퓨터에서 가장 일반적인 데이터 작업 중 하나이며 가장 비싼 작업 중 하나이므로 평균 사례 정렬을 개선하는 것이 효율성면에서 큰 발전이었습니다.
Dijkstra의 알고리즘 은 그래프 내에서 포인트 사이의 최단 경로를 생성합니다. 이것은 인터넷 자체와 관련하여 모든 방식의 라우팅 응용 프로그램에 널리 사용되며 얽힌 상호 연결된 라우터의 웹을 통한 가장 빠른 경로가 사용되도록합니다.
받은 편지함에서 시간 낭비되는 스팸의 양을 관리 가능한 수준으로 유지하는 데 가장 큰 영향을 주었을 것입니다.
물론, 그것은 다른 많은 가치있는 응용 프로그램에서 사용되었지만 SPAM-killing이 가장 좋아합니다.
이것은 현재 Python , Java 7 및 Android 에서 사용되는 정렬 알고리즘입니다.
원래:
N-1
이미 정렬 된 목록에 있음)그리고 그것의 아름다움은? 그것은이다 안정 ! 따라서 다양한 기준에 따라 멀티 패스 분류에 적합합니다.
그건 그렇고, 누구나 최적화 된 C ++ 구현을 가지고 있다면 ...
3D 컴퓨터 애니메이션에서 가시성 문제를 해결하는 데 사용 된 모든 알고리즘은 나에게 중요한 것 같습니다.
우선 순위 채우기라고도하는 화가의 알고리즘은 3D 컴퓨터 그래픽의 가시성 문제에 대한 가장 간단한 솔루션 중 하나입니다. 3D 장면을 2D 평면에 투영 할 때는 어느 시점에서 어떤 다각형을 표시하고 어떤 다각형을 숨길지를 결정해야합니다.
컴퓨터 그래픽에서 z- 버퍼링은 일반적으로 하드웨어, 때로는 소프트웨어에서 수행되는 3 차원 그래픽의 이미지 깊이 좌표를 관리합니다. 가시성 문제에 대한 한 가지 해결책입니다. 렌더링 된 장면의 어떤 요소가 표시되고 어떤 요소가 숨겨 지는지 결정하는 문제가 있습니다. 화가의 알고리즘은 효율성은 떨어지지 만 불투명하지 않은 장면 요소도 처리 할 수있는 또 다른 일반적인 솔루션입니다. Z 버퍼링은 깊이 버퍼링이라고도합니다.
3D 컴퓨터 그래픽에서 숨겨진 표면 결정 (HSR (숨겨진 표면 제거), Oclusion Culling (OC) 또는 가시 표면 결정 (VSD)이라고도 함)은 특정 관점에서 보이지 않는 표면과 표면의 일부를 결정하는 데 사용되는 프로세스입니다. 숨겨진 표면 결정 알고리즘은 3D 컴퓨터 그래픽 분야의 첫 번째 주요 문제 중 하나 인 가시성 문제에 대한 솔루션입니다. 숨겨진 표면 결정 프로세스를 숨기기라고하는 경우가 있으며, 이러한 알고리즘을 때로는 숨기기 도구라고합니다. 선 렌더링에 대한 아날로그는 은선 제거입니다. 가상 현실에서 벽을 볼 수 없도록 이미지를 올바르게 렌더링하려면 은선 결정이 필요합니다.
현재 문제를 해결해야하는 것
원래 컨볼 루션 오류 수정 코드를 해독하는 데 사용 된이 기술은 이제 음성 인식에서 생물 정보학에 이르기까지 광범위한 인식 문제를 해결하는 데 사용됩니다. 여러 통신 및 저장 장치에서 찾을 수 있습니다.
Runge-Kutta 수치 적분. 그것 없이는 많은 시뮬레이션이 불가능할 것입니다. 우주 프로그램, 원자력, 탄도, 스포츠 시뮬레이션, 방탄 조끼, 충돌 테스트 시뮬레이션, 유체 운동 시뮬레이션, 화학 상호 작용 시뮬레이션, 내진 건물 없음 등이 없습니다.
정렬 알고리즘.
음성 및 서면 언어.
그것들은 현재 한 지식에서 다른 것으로 지식을 전달하는 가장 효율적인 알고리즘 중 하나입니다. 언어가 없으면 시민 사회는 존재할 수 없었으며 정보를 전달할 수 없었습니다.
힙 데이터 구조 및 힙 구축 및 유지 보수 관련 알고리즘.
그리고 퀵 정렬에 대한 존중을 보여주십시오. 그것이 항상 선택의 종류는 아니지만, 그것은 컴퓨터 과학의 역사적 발전에있어 기본적인 알고리즘 중 하나이며, 재귀와 알고리즘 분석을 이해하기위한 훌륭한 수단입니다. 아름답고 예, 좋아합니다.
버블 정렬!
거품 정렬은 Bogosort 만큼 나쁘지 않습니다 . 그래서 버블 정렬에 투표합니다.