웹 서비스 개발(FB,BE,SERVER,DB)/Algorithm

1. 자료구조와 알고리즘

Zoo_10th 2024. 1. 14.

1. 자료 구조(Data Structure)

데이터를 효율적으로 관리하고 조작하는 데 필수적인 컴퓨터 과학의 핵심 개념이다.

1-1. 자료 구조의 중요성과 기능

 - 목적 : 효과적인 데이터 저장, 관리 및 접근을 가능하게 한다.

 - 기능 : 데이터 삽입, 수정, 삭제, 검색 등 다양한 연산을 수행한다.

 

1-2. 자료 구조의 주요 연산

 - 삽입(Insertion) : 새로운 데이터를 구조에 추가

 - 수정(Modificaion) : 기존 데이터의 갱신 또는 변경

 - 삭제(Deletion) : 특정 데이터 제거

 - 검색(Search) : 특정 데이터의 위치 또는 존재 여부 확인

 - 정렬(Sorting) : 데이터를 특정 기준에 따라 재배열

 - 병합(Merging) : 두 개 이상의 데이터 집합을 하나로 합침

 - 순회(Traversal) : 구조 내의 모든 데이터를 방문하거나 접근

 

1-3. 추상 자료형(Abstract Data Types, ADT)

 - 정의 : 데이터 타입과 해당 타입에서 수행할 수 있는 연산을 정의하지만, 이를 어떻게 구현할지는 명시하지 않는다.

 - 예시 : 스택, 큐, 리스트 등

 

1-4. 자료 구조의 분류

1-4-1. 선형 자료 구조(Linear Data Structures)

 - 데이터가 순차적으로 배열되는 구조

   * 배열(Array) : 고정된 크기의 연속적인 메모리 할당

   * 연결 리스트(Linked List) : 각 요소가 다음 요소를 가리키는 포인터로 연결된 구조

   * 스택(Stack) : LIFO(Last In First Out) 원칙에 따라 동작한다. (후입선출)

   * 큐(Queue) : FIFO(First In First Out) 원칙에 따라 동작한다. (선입선출)

1-4-2. 비선형 자료 구조(Non-linear Data Structures)

 - 데이터가 계층적이거나 그래프 형태로 저장되는 구조

   * 트리(Tree) : 계층적 구조를 가지며, 부모-자식 관계를 가진 노드로 구성

   * 그래프(Graph) : 노드와 이 노드들을 연결하는 에지로 구성

 

2. 알고리즘(Algorithms)

복잡한 문제를 해결하기 위한 단계별 절차로, 효율적이고 체계적인 방식으로 문제를 해결하는 데 사용된다.

2-1. 알고리즘의 정의와 특성

 - 정의 : 규정된 시간 내에 특정 작업을 완료하기 위한 명확하고 순차적인 절차

 - 특성 

   * 결정성(Definiteness) : 각 단계는 명확하고 정확해야 한다.

   * 유한성(Finiteness) : 유한한 단계 후에는 반드시 종료되어야 한다.

   * 입력(Input) : 하나 이상의 입력을 받아 처리.

   * 출력(Output) : 하나 이상의 출력을 제공

   * 효과적(Effectiveness) : 모든 단계는 충분히 기본적이어서 정확하게 실행 가능해야 한다.

 

2-2. 알고리즘의 중요성

 - 효율성 : 더 빠르고 경제적인 방식으로 문제 해결이 가능하다.

 - 자동화 : 복잡한 작업을 자동화하고 오류를 최소화한다.

 

2-3. 알고리즘의 예시

 - 정렬(Sorting) : 데이터를 특정 순서로 배열(버블 정렬, 퀵 정렬)

 - 검색(Searching) : 데이터 집합에서 특정 요소 찾기(이진 검색)

 - 그래프 알고리즘그래프 구조에서 최단 경로, 최소 신장 트리 등 찾기(다익스트라 알고리즘)

728x90

'웹 서비스 개발(FB,BE,SERVER,DB) > Algorithm' 카테고리의 다른 글

6. 해시 테이블(Hash Table)  (0) 2024.01.15
5. 큐(Queue)  (0) 2024.01.15
4. 스택(stack)  (0) 2024.01.15
3. 연결 리스트(Linked List)  (0) 2024.01.15
2. 배열(Array)과 리스트(List)  (0) 2024.01.14

댓글