Study/Algorithm

[알고리즘] 자료 구조와 알고리즘 개요

ChoiSenn 2022. 3. 21. 21:04

 

 

 

 

자료 구조란?

 

 자료를 효율적으로 관리하는 방법이다. 컴퓨터 분야에서 효율적으로 접근하고 수정할 수 있도록 자료를 구성, 관리, 저장하는 것이다. 컴퓨터 프로그래밍 언어에서 효율적인 자료(데이터)의 형태를 일컫는다.

 

 

 

자료 구조의 종류

 

 단순 자료 구조 : 프로그래밍 언어의 데이터 형식에 해당하는 정수, 실수, 문자, 문자열 등.

    - 정수 : int 또는 integer 형태로 소수점이 없는 형태이다.

    - 실수 : 소수점이 있는 형태로, float 등으로 표현한다.

    - 문자 : 한 글자를 의미하며, char로 표현. 주로 ' '로 묶는다.

    - 문자열 : 글자 여러 개를 연결한 것으로, string으로 표현. 주로 " "로 묶는다.

 

 선형 자료구조 : 데이터를 한 줄로 순차적으로 표현한 형태. 선형 리스트, 연결 리스트, 스택, 큐 등

 

 비선형 자료구조 : 하나의 데이터 뒤에 여러 개가 이어지는 형태. 트리와 그래프 등

 

 파일 자료구조 : 파일 내용이 디스크에 저장되는 방식에 따라 순차 파일과 직접 파일로 구분된다.

    - 순차 파일 : 파일 내용을 논리적인 처리 순서에 따라 연속해서 저장하는 것. 구조가 간단하기에 저장되는 공간 효율이 높지만, 다른 내용을 축약하거나 삭제할 경우에는 파일 내용을 재구성해야 하므로 상당히 시간이 오래 걸린다.

    - 직접 파일 : 파일 내용을 임의의 물리적 위치에 기록하는 방식으로 직접 접근하는 방식이다.

    - 색인 순차 파일 : 순차 파일과 직접파일이 결합된 형태이다.

 

 

 

알고리즘 표현법

 

 일반 언어 표현 : 일반적인 자연어를 사용해서 설명하듯 알고리즘을 표현한다. 일반 사람이 이해하기 쉽게 표현할 수 있으나, 최종적으로 코드로 변경하는 데에는 한계가 있다. 어떤 알고리즘을 사용해야 할지 아이디어가 떠오르지 않는 시점에서 생각 범위를 넓히난 단계 정도에서 사용하기 좋다.

 

 순서도를 이용한 표현 : 여러 종류의 상자와 상자를 이어주는 화살표를 이용하여 명령 순서를 표현한다. 간단한 알고리즘은 쉽게 표현할 수 있지만, 복잡한 알고리즘은 표현하기 어려운 경우가 많다.

 

 의사코드를 이용한 표현 : 프로그래밍 언어보다는 약간 더 인간의 언어에 가까운 형태이다. 프로그램 코드를 직접 코딩하는 것보다 알고리즘을 좀 더 명확하게 정립하는 데 도움이 되고, 코드에 설명을 달지 않아도 이해하는 데 무리가 없다.

 

 프로그램 코드로 표현 : 실제 사용하는 프로그래밍 언어의 코드로 바로 작성이 가능하다.

 

 혼합 형태 : 간단한 알고리즘은 직접 코드로 작성하고, 복잡한 알고리즘은 일반 언어, 의사코드, 순서도 등을 종합적으로 활용해 표현한다.