## 자료 구조와 알고리즘
1. 자료구조와 알고리즘 컴퓨터를 이용하여 어떤 문제를 해결할 때 가장 필수적으로 요구되는 것이 자료 구조와 알고리즘에 대한 이해이다.
좋은 자료구조는 문제를 정확하게 표현하고 효율적으로 다룰수 있도록 데이터를 잘 조직해 놓은 것이며,
좋은 알고리즘은 문제를 가장 빠른 시간에 풀 수 있도록 하는 방법이다. 좋은 알고리즘은 좋은 자료구조를 바탕으로 한다.
1.1 선형 자료구조 저장하고자 하는 데이터들 사이의 관계가 어떤 기준으로 그 크기 순서대로 하나씩 나열할 수 있는 구조이다.
즉 데이터들 간에 순서를 정할 수 있는 자료구조이다. 대표적인 것으로 배열, 선형 리스트가 있고 이들을 이용한 스택, 큐와 같은 자료 구조가 있다.
1.2 비선형 자료구조 저장하고자 하는 데이터들을 모두 순서를 정할 수는 없는 자료구조이다.
대표적인 것으로 그래프가 있으며 그래프의 일종인 트리가 일반적으로 많이 사용되는 자료구조이다.
2. 알고리즘 알고리즘이란 무엇인가?
알고리즘이란 컴퓨터로 계산을 하기 이전 부터 존재하였던 계산 방식이라 말할 수 있는데
현대에 와서는 어떤 문제를 해결함에 있어 컴퓨터를 이용한 계산 시에 사용하는 방법론을 일반적으로 알고리즘이라 한다.
그림 1에서는 컴퓨터 프로그래밍과 자료 구조, 그리고 알고리즘과의 관계를 설명하고 있다. 알고리즘이란 특정한 일을 해결/수행하는 유한 명령어의 집합으로 다음 조건을 만족한다.
1) 입 력 : 외부에서 제공되는 자료가 0개 이상 있다.
2) 출 력 : 적어도 하나 이상의 결과를 생성한다.
3) 명확성 : 애매모호해서는 안된다.
4) 유한성 : 반드시 종료해야 한다.
5) 유효성 : 수행 가능해야 한다.
일상 생활에서도 알고리즘을 많이들 사용하고 있는데 다음의 예에서 살펴보도록 하자.
두수 a와 b의 곱을 구하는 경우를 생각해 보면 그 해답을 구하는 방법은 두가장 경우가 가능하다.
첫 째는 a와 b를 곱하기 연산을 통해서 그 해답을 바로 구하는 것이고, 둘째는 a를 b번 더해서 그 답을 구하는 것이다.
물론 곱하기 연산 자체가 더하기 연산의 반복적인 것으로 정의가 가능하기 때문에 위의 같은 두 가지 경우를 고려할 수 있는 것이다.
생각해 볼 수 있는 것은 어떤 문제가 주어졌을 때 어떤문제가 주어졌을때 어떠한 방법으로 해결하면 더 효율적이냐는 것을 생각해볼수 있다.
이때 좀 더 효율적인 방법을 찾는 것이 알고리즘을 공부하는 이유가 되는 것이다.
출처 : www.koiz.net
1. 자료구조와 알고리즘 컴퓨터를 이용하여 어떤 문제를 해결할 때 가장 필수적으로 요구되는 것이 자료 구조와 알고리즘에 대한 이해이다.
좋은 자료구조는 문제를 정확하게 표현하고 효율적으로 다룰수 있도록 데이터를 잘 조직해 놓은 것이며,
좋은 알고리즘은 문제를 가장 빠른 시간에 풀 수 있도록 하는 방법이다. 좋은 알고리즘은 좋은 자료구조를 바탕으로 한다.
1.1 선형 자료구조 저장하고자 하는 데이터들 사이의 관계가 어떤 기준으로 그 크기 순서대로 하나씩 나열할 수 있는 구조이다.
즉 데이터들 간에 순서를 정할 수 있는 자료구조이다. 대표적인 것으로 배열, 선형 리스트가 있고 이들을 이용한 스택, 큐와 같은 자료 구조가 있다.
1.2 비선형 자료구조 저장하고자 하는 데이터들을 모두 순서를 정할 수는 없는 자료구조이다.
대표적인 것으로 그래프가 있으며 그래프의 일종인 트리가 일반적으로 많이 사용되는 자료구조이다.
2. 알고리즘 알고리즘이란 무엇인가?
알고리즘이란 컴퓨터로 계산을 하기 이전 부터 존재하였던 계산 방식이라 말할 수 있는데
현대에 와서는 어떤 문제를 해결함에 있어 컴퓨터를 이용한 계산 시에 사용하는 방법론을 일반적으로 알고리즘이라 한다.
그림 1에서는 컴퓨터 프로그래밍과 자료 구조, 그리고 알고리즘과의 관계를 설명하고 있다. 알고리즘이란 특정한 일을 해결/수행하는 유한 명령어의 집합으로 다음 조건을 만족한다.
1) 입 력 : 외부에서 제공되는 자료가 0개 이상 있다.
2) 출 력 : 적어도 하나 이상의 결과를 생성한다.
3) 명확성 : 애매모호해서는 안된다.
4) 유한성 : 반드시 종료해야 한다.
5) 유효성 : 수행 가능해야 한다.
일상 생활에서도 알고리즘을 많이들 사용하고 있는데 다음의 예에서 살펴보도록 하자.
두수 a와 b의 곱을 구하는 경우를 생각해 보면 그 해답을 구하는 방법은 두가장 경우가 가능하다.
첫 째는 a와 b를 곱하기 연산을 통해서 그 해답을 바로 구하는 것이고, 둘째는 a를 b번 더해서 그 답을 구하는 것이다.
물론 곱하기 연산 자체가 더하기 연산의 반복적인 것으로 정의가 가능하기 때문에 위의 같은 두 가지 경우를 고려할 수 있는 것이다.
생각해 볼 수 있는 것은 어떤 문제가 주어졌을 때 어떤문제가 주어졌을때 어떠한 방법으로 해결하면 더 효율적이냐는 것을 생각해볼수 있다.
이때 좀 더 효율적인 방법을 찾는 것이 알고리즘을 공부하는 이유가 되는 것이다.
출처 : www.koiz.net



댓글을 달아 주세요
댓글 RSS 주소 : http://letmelove.net/blog/rss/comment/14