자료구조란 무엇인가?
그리고 알고리즘과 무슨 차이점이 있을까?
자료구조
--
자료구조는
데이터를 효율적으로 저장하고 조작하는 방법을 정의하는 구조를 의미한다.
(대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조)
그래서
어떠한 자료구조를 사용하는가에 따라 알고리즘의 성능에 직접적인 영향을 미치게 되며
특정 문제를 해결하는 데 최적화된 방법을 제공할 수 있게 된다.
즉, 자료구조는 각기 다른 특성과 성능을 제공하므로, 문제의 특성과 요구사항에 맞는 자료구조를 선택하는 것이 중요하다.
잘못된 자료구조를 사용하게 되면 알고리즘의 성능이 크게 저하되게 된다.
--
자료구조와 알고리즘
--
자료구조는
데이터를 효율적으로 저장하고 관리하는 방법을 의미하며
데이터를 특정한 방식으로 조직화하여 쉽게 접근하고 수정할 수 있도록 구성하는 것이다.
예시
- 배열 (Array) : 연속적인 메모리 공간에 데이터를 저장하는 구조 [ 접근 속도가 빠름 ]
- 연결 리스트 (Linked List) : 데이터 요소가 노드로 구성되어 있으며, 각 노드는 다음 노드에 대한 포인터를 가진다.
- 스택 (Stack), 큐 (Queue) : 특정한 순서로 데이터를 삽입, 삭제하는 구조
- 트리 (Tree) : 데이터를 계층적 구조로 저장한다.
- 해시 테이블 (Hash Table) : 키-값 쌍으로 데이터를 저장하여, 빠른 검색을 위해 해시 함수를 사용한다.
알고리즘은
어떠한 문제를 해결하기 위한 일련의 절차 및 단계이다.
주어진 문제를 해결하기 위해 어떤 작업을 어떤 순서로 수행해야 하는지에 대한 설명이다.
예시
- 정렬 알고리즘 : 데이터를 정렬하는 방법
- 탐색 알고리즘 : 특정 데이터를 찾는 방법
- 그래프 알고리즘 : 그래프 구조를 탐색하거나 최단 경로를 찾는 방법
- 동적 프로그래밍 : 복잡한 문제를 작은 하위 문제로 나누어 푸는 방법
정리
자료구조는 데이터를 어떻게 저장하고 관리할지에 대한 기본적인 틀을 제공하고
알고리즘은 해당 자료구조를 활용하여 실제 문제를 해결하는 방법을 제시하는 것이다.
예시로 이진 탐색 알고리즘으로 설명을 하자면
(이진 탐색 알고리즘 : 정렬된 배열 자료구조를 사용하여 특정 값을 빠르게 찾는 방법)
여기서 배열이 자료구조이고, 이진 탐색이 알고리즘이다.
--
'CS > 자료구조' 카테고리의 다른 글
이진 탐색 트리 (0) | 2024.08.05 |
---|---|
스택과 큐 (+ 깊이 우선 탐색, 너비 우선 탐색) (0) | 2024.08.03 |
동적 자료 구조 (+ 연결 리스트) (0) | 2024.08.02 |
이진 탐색 (+ 선형 스캔) (0) | 2024.08.01 |
데이터를 메모리에 저장하기 ( + 배열의 삽입 정렬 ) (0) | 2024.07.31 |