[알고리즘] 1. 알고리즘의 개요
1. 알고리즘의 개요
1) 알고리즘의 개념
• 컴퓨터는 대용량 저장 공간을 가지고 있으며 빠르게 연산을 처리할 수 있으므로 인간의 활동에 필요한 작업을 보다 효과적으로 수행할 수 있음
• 수치 계산뿐만 아니라 문자, 그림, 소리, 동영상 등 다양한 형태의 자료를 처리하여 사용자가 원하는 정보를 제공
2) 자료와 정보
• 자료(data): 단순한 관찰이나 측정을 통해 수집된 사실이나 어떤 값으로, 프로그램을 수행하는 데 필요한 재료
• 정보(information): 자료를 특정 목적에 맞게 가공하고 처리하여 실제 문제 해결에 유용한 형태로 변환한 것
3) 컴퓨터 프로그램의 기본 개념
• 자료구조(data structure): 데이터를 효율적으로 표현하고 저장하는 다양한 구조
• 알고리즘(algorithm): 어떤 작업을 수행하기 위해 입력을 받아 원하는 출력을 만들어내는 과정
4) 알고리즘의 필요성
• 네비게이션: 최단 경로를 찾는 알고리즘
• 인터넷 검색: 대량의 데이터를 빠르게 검색하는 알고리즘
• 제조 공정: 작업의 순서를 정리하는 위상 정렬 알고리즘
2. 알고리즘의 표현 방법
1) 알고리즘의 표현 방식
• 자연어(한국어, 영어 등)
• 순서도(flowchart)
• 의사코드(pseudocode)
• 프로그래밍 언어(C, C++, JAVA 등)
2) 알고리즘의 표현 방법별 특징
자연어
• 사람이 이해하기 쉽지만 모호성이 존재할 수 있음
• 복잡한 알고리즘을 표현하기에는 적절하지 않음
순서도
• 문제 해결 과정을 도형과 화살표로 표시
• 가시적이고 직관적이지만 복잡한 알고리즘을 표현하기 어려움
의사코드
• 프로그램 코드와 유사한 형식을 가지며 특정한 프로그래밍 언어에 의존하지 않음
• 알고리즘을 기술하는 데 가장 선호되는 표기법
프로그래밍 언어
• C, C++, JAVA 등과 같은 특정 프로그래밍 언어로 표현 가능
• 가장 정확하게 표현할 수 있으나 구현 세부 사항이 포함될 수 있음
3. 알고리즘의 기본 구조
1) 변수와 상수
• 변수: 특정 값을 저장하기 위한 공간
• 상수: 변하지 않는 값을 가지는 데이터
2) 지정문(Assignment)
• 변수나 연산 결과를 저장하는 명령문
• 예) sum = sum + 1
3) 반복문(Loop)
• 특정 조건이 만족될 때까지 반복 실행하는 구조
• for 문, while 문, do-while 문이 있음
4) 조건문(Conditional Statement)
• 조건을 판단하여 명령을 실행하는 구문
• if-else 문, 다중 if 문 등이 있음
5) 함수(Function)
• 반복적으로 사용하는 기능을 독립적인 코드 블록으로 작성
• 코드의 재사용성을 높이고 유지보수를 용이하게 함
4. 효율적인 알고리즘
1) 알고리즘 분석의 필요성
• 알고리즘의 명확성과 효율성을 분석해야 함
• 소요 시간과 메모리 사용량을 고려하여 최적화
2) 알고리즘의 수행 시간
• 입력 크기에 따라 시간이 어떤 비율로 증가하는지 분석
• 최악의 경우와 평균적인 경우를 고려하여 성능을 평가
이 내용은 휴넷사회복지평생교육원의 알고리즘 강의를 듣고 정리한 것입니다.