알고리즘 설계는 문제를 해결하는 수학적인 과정을 만들어내는 특정한 방법이다. 알고리즘 설계는 알고리즘 공학에 적용된다.
알고리즘 설계는 동적 계획법이나 분할 정복 알고리즘과 같은, 운용 과학의 많은 해법에서 확인되고, 통합되어 있다. 알고리즘 설계의 기술에는 템플릿 메소드 패턴이나 데코레이터 패턴과 같은 알고리즘 설계 패턴[1]과 자료 구조, 이름 및 정렬 리스트를 사용하는 것이 있다. 최근에는 웹 크롤링의 인터넷 검색 과정, 패킷 라우팅 및 캐싱 등에서 알고리즘 설계가 사용된다.
알고리즘 설계를 위한 컴퓨팅 도구에는 ALGOL (Algorithmic language에서 유래), FORTRAN, COBOL, PL/I, SAIL, 혹은 SNOBOL과 같은 메인프레임 프로그래밍 언어가 있지만, “알고리즘 설계”는 언어가 아니다. 알고리즘 설계는 수작업을 통한 과정이다. 이를테면, 방정식들의 집합, 손으로 하는 기계적 과정의 연속, 아날로그 장비, 혹은 디지털 과정 및 프로세서 같은 것이다.
알고리즘 설계의 가장 중요한 측면 중 하나는, 점근 표기법으로도 알 수 있는 효율적인 실행 시간을 갖는 알고리즘을 만드는 것이다.