자료구조와 알고리즘
프로그램
프로그램 = 자료구조+알고리즘
프로그램은 특정 문제를 해결하기 위해 처리 방법과 순서를 기술하여 컴퓨터에 입력되는 일련의 명령문 집합체이며...-wikipedia
자료구조
데이터를 조직화하고 저장하는 법을 우리는 자료구조 라고 한다.
자료구조는 데이터를 효율적으로 저장, 검색, 삽입, 삭제 할 수 있도록 하는 역할을 한다.
일상 생활에서 예를 들어 자료구조를 이해해보자
우리는 찬장에 그릇들을 쌓아서 보관하고는 한다. 그릇을 꺼내어 사용할 때는 위의 그릇부터 꺼내게 되고, 그릇을 쌓을 때는 아래에서 부터 차곡차곡 쌓게 된다. 이는 스택 자료구조의 흔한 예이다.
알고리즘
어떤 문제를 해결하기 위한 단계적인 절차를 알고리즘 이라고 한다.
일상 생활에서 예를 들어 알고리즘을 이해해보자.
우리는 한글 사전을 이용해 "백수" 단어의 정의를 살피고자 한다. 이때 우리는 사전의 옆에 표시된 ㅂ자음을 찾아 펼치게 된다. 그리고는 자음과 모음의 순서를 생각하여 앞과 뒤로 이동하며 "백"을 찾고, 반복하여 "백수"라는 단어를 찾게 된다. 이러한 일련의 과정을 알고리즘이라고 할 수 있다.
알고리즘의 조건
우리가 어떤 절차를 "알고리즘"이라고 부르기 위해서는 5가지의 조건을 충족해야 한다.
1. 입력 : 0개 이상
2. 출력 : 1개 이상
3. 명백성 : 명령어들은 의미가 명백해야 함
4. 유한성 : 반드시 종료 되어야 함
5. 유효성 : 명령어들은 실행 가능해야 함
알고리즘의 기술방법
알고리즘을 표현하여 기술하는데에는 다양한 방식이 존재한다. 아래의 방식을 통해 우리는 문제를 해결하는 절차를 설명할 수 있다.
1. 자연어 : 한국어 / 영어와 같은 자연어를 이용해서 문제 해결 방법을 설명한다.
2. Flow chart : 흐름도를 통해 알고리즘을 시각화 할 수 있다. 문제는 복잡한 알고리즘을 표현하는데에는 한계
가 있다.
3. Pseudo-Code : 일반적인 언어와 기호들로 코드를 흉내내어 알고리즘의 핵심 내용 기술. 특정한 문법이 정해져있지는 않음.
4. 프로그래밍 언어 : 알고리즘을 직접 코드로 작성하여 기술. 정확하게 알고리즘을 이해할 수 있지만, 부가정보가 많아질 수 있다.
'Data structures > Chapter 1. Data Structures and Algorithm' 카테고리의 다른 글
[자료구조] 2. 자료형 (0) | 2023.09.06 |
---|