<알고리즘>
알고리즘이란 어떤 일이나 문제를 해결하기 위한 절차나 방법이다.
같은 결과를 도출하지만, 문제를 어떤 방식으로 해결했는가에 따라서
좋은 알고리즘과 그렇지 못한 알고리즘으로 평가할 수 있다.
예를 들어서, 1부터100까지 더하는 문제가 있다고 가정해보자.
이 문제를 2가지 방식으로 해결해보겠다.
1)단순 계산.
말 그대로 1부터 100까지 차례대로 더하는 방법이다.
풀이) 1 + 2 + 3 +…+ 100 = 5050
더하기 연산을 99번 해야 한다.
2) 수학적인 방법
아래 공식을 이용할 것이다.
풀이) 100(100+1)/2 = 5050
연산 3번만에 답을 찾아냈다.
위의 2가지 방법은 같은 5050이라는 결과가 나왔지만, 연산을 하는 횟수에서 큰 차이가 있다.
같은 결과를 얻는데 어떤 방법을 선택하는 것이 좋을까.
당연히 99번의 연산을 하는 것 보다 3번의 연산만을 하는 2번째 방법이 빠르다.
각 알고리즘의 연산 횟수의 차이는 1부터 더해지는 숫자의 범위가 커질수록 더 큰 차이가 난다.
각 상황에 따라서 좋은 알고리즘을 선택해서 사용하는 것이 중요하다.
<자료구조>
자료구조란 데이터를 다루는 방식이다.
각 데이터 간의 관계를 어떤 구조로 처리를 할지에 대한 것이다.
자료구조와 알고리즘은 서로 종속적이다.
자료구조에 따라서 어떤 알고리즘을 사용할지가 결정이 된다.
모든 상황에서 무조건 좋은 자료구조는 없다.
상황에 따라서 다르다.
그렇기 때문에 각 자료구조에 대한 특징들을 알고 있어야 각 상황에 적절한 자료구조를
사용할 수 있다.
아래는 자료구조의 예시이다.
<연결리스트>
<트리>
지금까지 간단하게 자료구조와 알고리즘에 대해서 살펴보았다.
'컴퓨터 > 자료구조' 카테고리의 다른 글
추상 자료형(Abstract Data Type)이란 (0) | 2021.05.02 |
---|---|
자료구조 : 스택(Stack) (0) | 2021.03.23 |