Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

heenam

자료구조란? 알고리즘이란? 본문

[Programming Language]/Project

자료구조란? 알고리즘이란?

znzltiq 2021. 11. 30. 23:14

자료구조란?

자료의 집합을 의미하며, 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것이다.

자료구조의 목적은 자료를 더 효율적으로 저장하고, 관리하기 위해 사용하며, 잘 선택된 자료구조는 실행시간을 단축시켜주거나 메모리 용량의 절약을 이끌어 낼 수 있다.

자료를 보다 효율적으로 하기 위해서 처리시간, 크기, 활용 빈도, 갱신 정도, 프로그램의 용이성과 같은 사항을 고려하여 선택, 사용해야 한다.

자료구조는 크게 3가지 특징이 있다.

첫째로 효율성이다.

자료구조를 사용하는 목적은 효율적인 데이터의 관리 및 사용이다.

따라서 적절한 자료구조를 선택하여 사용한다면 업무의 효율이 올라갈 것이다.

두번째로 추상화이다.

추상화란 복잡한 자료, 모듈, 시스템 등으로 부터 핵심적인 개념만 간추려 내는 것이다.

자료구조를 구현할 때 어느 시점에 데이터를 삽입할 것이며, 어느 시점에 이러한 데이터를 어떻게 사용할것인지에 대해서 초점을 맞출수 있기 때문에 구현 외적인 부분에 더 시간을 쏟을 수 있다.

어떻게 구현 했는지 보다 어떻게 사용해야 하는지를 알고 있어야 한다.

셋째로 재사용성이다.

자료구조를 설계할때 특정 프로그램만 동작하게 설계하지는 않는다. 다양한 프로그램에서 동작할 수 있도록 범용성 있게 설계하기 때문에 해당 프로젝트가 아닌 다른 프로젝트에서도 사용할 수 있다.

자료구조의 분류

자료구조는 데이터가 일렬로 나열되어 있는 선형 자료구조특정한 형태를 띄고 있는 비 선형 자료구조로 나뉜다.

선형 구조에는 배열, 연결 리스트, 스택, 큐 가 있으며, 비선형 구조에는 트리, 그래프가 있다.

 

알고리즘이란?

문제를 해결할 때 그 절차를 알기 쉽도록 기술하는 논리적인 절차과정을 의미한다.

알고리즘은 다음 조건들을 만족해야 한다.

입력 - 자료가 외부에서 제공될 수 있다.

출력 - 문제가 처리되면 반드시 하나 이상의 결괏값이 나와야 한다.

명확성 - 알고리즘의 각 단계는 무엇을 하기 위한 것인지 명확하게 정의되어야 한다.

유한성 - 알고리즘의 명령어대로 수행했을 때 주어진 값이 처리된 후 종료되어야 한다.

효과성 - 알고리즘은 효율적일수록 가치가 높다. 시간적, 공간적 효율성을 가져야 한다.

 

자료구조와 알고리즘의 차이점

자료구조는 어떻게 효율적으로 자료를 저장할 것인가에 대한 고민이 필요하다.

알고리즘은 문제를 해결하기 위한 절차에 대한 고민이 필요하다.

 

'[Programming Language] > Project' 카테고리의 다른 글

절차지향? 객채지향?  (0) 2021.12.09
리눅스 명령어 정리  (0) 2021.11.26
C 언어 조건 연산자 '?'  (0) 2020.04.15
Computer Science Part4  (0) 2020.03.30
Computer Science Part3  (0) 2020.03.20