알고리즘은 컴퓨터 과학에서 매우 중요합니다. 가장 잘 선택된 알고리즘은 컴퓨터가 주어진 작업을 최상의 방식으로 수행 할 수 있도록합니다. 효율성이 중요한 경우 적절한 알고리즘을 사용하는 것이 실제로 중요합니다. 가용 리소스에 따라 컴퓨터 프로그램을 최적화하는 데 알고리즘이 중요합니다. .
궁극적으로 누군가가 더 나은 알고리즘을 통해 문제를 해결하기로 결정한 다음 프로그램 속도의 최상의 조합을 검색하고 메모리 소비량이 가장 적습니다.
Brute Force 알고리즘은 가장 직선적 인 방식으로 문제를 해결하는 데 중점을 둡니다. 문제를 해결하기 위해 기본 기술을 사용하는 것을 의미합니다. 요컨대, 이것들은 가장 간단한 알고리즘입니다. 이 알고리즘이 결과를 생성하는 데 비교적 느리게 속도가 빠르기 때문에 속도의 단순성 비용. 가장 좋은 방법은 입력 크기가 작은 문제로 사용하는 것입니다.
이 방법의 기본 아이디어는 문제의 크기를 나누기 위해 프로그램을 만드는 것입니다. 각 루프에서 일정한 요인이있는 부분에서 문제를 자른 다음 같은 방식으로 더 처리하십시오. 이것은 빠른 알고리즘입니다.
하나의 효율적인 빠른 알고리즘을 검색하는 경우 동적 프로그래밍이 여기에 있습니다. 이 알고리즘에서 모든 초점은 메모리 공간에도 비용이 드는 실행 속도에 이루어집니다. 이 방법에서 시간을위한 공간을 단순히 말하는 것은 희생됩니다. 이 알고리즘에서 실행 속도가 크게 줄어 듭니다. 이 방법은 특히 하위 문제가 겹치는 문제를 해결하는 데 특히 유용합니다.
욕심 많은 알고리즘은 단계 기반 알고리즘입니다. 탐욕스러운 알고리즘에서는 각 단계의 문제를 분석합니다. 그런 다음이 특정 단계에 가장 좋은 현지에서 가능한 최적의 솔루션을 사용하십시오. 프로세스는 모든 단계로 반복됩니다. 전 세계적으로 최적의 솔루션으로 이어질 것입니다.
기포 정렬의 시간 복잡성 -O (N) 및 선택 정렬의 시간 복잡성 -O (N2)
일반 알고리즘의 시간 복잡성은 O (n^3)이고 Strassen의 알고리즘은 O (n^2.80)입니다.