Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 리눅스
- 알고리즘
- 정보처리기사
- 기구학
- homogeinous
- Computer
- MIPS
- 소스 코드 품질 분석
- CentOS
- 정렬
- 합병
- 네트워크 충돌
- AI
- Coding
- Java
- robotics
- sam2
- sort
- 컴퓨터구조
- 맥케이브
- homogenous
- 회전 복잡도
- SQL
- 정처기
- 해싱 함수
- segmentation
- 명령어
- ROS2
- Linux
- 3dof
Archives
- Today
- Total
UTF-404
알고리즘에 대해 알아보기!! 본문
728x90
💡 알고리즘(Algorithm)의 개념
➡️ 알고리즘은 어떠한 문제를 해결하기 위한 정해진 일련의 절차자 방법을 공식화한 형태로 표현한 기법이다.
📍 알고리즘 특성
➡️ 알고리즘의 표현은 자연어, 순서도, 의사 코드, 프로그래밍 언어를 이용하는 방법이 있으며, 따라서 프로그래밍 언어가 아니더라도 알고리즘의 표현은 가능하다.
유형 | 설명 |
입력 | 외부로부터 입력되는 자료가 0개 이상 |
출력 | 출력되는 결과가 1개 이상 |
명확성 | 각 명령어의 의미가 명확 |
유한성 | 정해진 단계를 지나면 종료 |
유효성 | 모든 명령은 실행이 가능한 연산들이어야 함 |
📍 알고리즘 기법
기법 | 설명 |
분할과 정복 (Divide and Conquer) |
문제를 나눌 수 없을 때까지 나누고, 각각을 풀면서 다시 병합하여 문제의 답을 얻는 알고리즘 |
동적계획법 (Dynamic Programming) |
어떤 문제를 풀기 위해 그 문제를 더 작은 문제의 연장선으로 생각하고, 과거에 구한 해를 활용하는 방식의 알고리즘 |
탐욕법 (Greedy) |
결정을 해야할 때마다 그 순간에 가장 좋다고 생각되는 것을 해답으로 선택함으로써 최종적인 해답에 도달하는 방식의 알고리즘 |
백트래킹 (Backtracking) |
어떤 노드의 유망성 점검 후, 유망하지 않으면 그 노드의 부모 노드로 되돌아간 후 다른 자손노드를 검색하는 알고리즘 |
📍 시간 복잡도에 따른 알고리즘 분류
복잡도 | 설명 | 대표 알고리즘 |
O(1) | ∙ 상수형 복잡도 ∙ 자료 크기 무관하게 항상 같은 속도로 작동 ∙ 알고리즘 수행 시간이 입력 데이터 수와 관계없이 일정 |
해시 함수(Hah Function) |
O(log2n) | ∙ 로그형 복잡도 ∙ 문제를 해결하기 위한 단계의 수가 log2n번만큼의 수행 시간을 가짐 |
이진 탐색(Binary Search) |
O(n) | ∙ 선형 복잡도 ∙ 입력 자료를 차례로 하나씩 모두 처리 ∙ 수행 시간이 자료 크기와 직접적 관계로 변함(정비례) |
순차 탐색(Sequential Search) |
O(nlog2n) | ∙ 선형 로그형 복잡도 ∙ 문제를 해결하기 위한 단계의 수가 nlog2n번만큼의 수행 시간을 가짐 |
퀵 정렬, 합병 정렬(병합 정렬), 힙 정렬 |
O(n^2) | ∙ 제곱형 복잡도 ∙ 주요 처리 루프 구조가 2중인 경우의 복잡도 ∙ n의 크기가 작을 때에는 n^2이 nlog2n보다 빠를 수 있음 |
거품 정렬, 삽입 정렬, 선택 정렬 |
728x90
'정보처리기사' 카테고리의 다른 글
정렬 알고리즘 알아보기 (0) | 2024.03.07 |
---|---|
해싱함수와 검색 알고리즘 (0) | 2024.03.06 |
통합 테스트에 대해 알아보기!! (0) | 2024.02.29 |
테스트 지식 체계에 대해 알아보기(2) (0) | 2024.02.28 |
테스트 지식 체계에 대해 알아보기(1) (1) | 2024.02.28 |