반응형
자료구조가 무엇일까요?
( NAVER 지식백과. )
자료구조는 컴퓨터에서 처리할 자료를 효율적으로 관리하고 구조화시키기 위한 학문입니다. 즉, 자료를효율적으로 사용하기 위해 자료의 특성에 따라 분류하여 구성하고 저장 및 처리하는 모든 작업을 의미합니다.
알고리즘은 무엇일까요?
( NAVER 지식백과. )
알고리즘은 어떤 문제를 해결하기 위해 정해진 일련의 절차나 방법입니다. 다시말해 특정한 일이나 문제를 해결하기 위해 수행되는 해결 과정 혹은 방법을 의미합니다.
알고리즘을 기술하기 위한 방법이나 도구는 무엇이 있을까요?
- flow chart (흐름도) 필요한 작업과 처리의 순서를 통일된 기호와 도형을 사용해 도식적으로 표시한 것
- pseudo code (수도 코드, 의사 코드, 가짜 코드) 자연 언어에서 구문의 엄격한 규칙 없이 제어와 자료 구조를 설명한 것
- programming language (프로그래밍 언어) 프로그램을 제작할 때 사용되는 언어
- C언어
- C++
- JAVA
- Pascal
- natural language (일상 언어) 일상적으로 사용되는 언어
- 영어
- 한글
흐름도: 전체적인 흐름을 파악하기 용이합니다. 그러나 최근 만들어지는 복잡한 프로그램의 경우 흐름도를 사용하기 어려운 경우가 많습니다.
수도 코드: 코드를 간략하게 표현한 것이 특징입니다. 특정 언어의 규칙의 제약이 없습니다. 때문에 수도 코드 자체로는 프로그램을 실행시킬 수 없으며 때문에 가짜 코드라고도 합니다.
프로그래밍 언어: 컴퓨터 프로그램을 제작할 때 사용됩니다. 엄격한 규칙이 적용됩니다. 때문에 수도 코드에서는 신경쓰지 않아도 될 문법적인 부분을 신경써야 합니다.
일상 언어: 일상 언어로 알고리즘을 기술할 경우 문장을 곧바로 이해할 수 있지만 애매한 경우가 생길 수 있습니다. 때로는 이해하기 어려울 수 있습니다. 동음이의어나 의미가 애매모호한 말의 경우 다양하게 해석될 수 있기 때문입니다.
자료구조와 알고리즘의 차이점은 무엇일까요?
자료구조는 데이터를 저장할 형태를 결정합니다. 데이터를 표현하고 저장하는 방식을 말합니다. 알고리즘은 저장한 데이터를 어떻게 처리하고 제어할지를 결정합니다. 예를 들어보면 자료구조는 배열에 저장할지, 아니면 재귀함수 방식을 사용할지 등을 결정합니다. 알고리즘은 절차나 방법을 나열한 것입니다. 배열에처 최댓값 찾기 알고리즘이 있다면 이는 아래와 같습니다.
ArrayMax(A, n) 함수
1. 배열 A의 첫번째 요소를 변수 tmp에 복사합니다.
2. 배열 A의 다음 요소를 차례대로 tmp와 비교해서 다음 요소가 tmp보다 크면 그 요소를 tmp에 복사합니다.
3. 배열 A의 모든 요소를 비교했으면 tmp를 반환합니다.
말 그대로 문제를 해결하기 위한 절차를 알고리즘이라고 합니다.
반응형