YYYEJI

[DS] 데이터 구조(Data Structures)란? 본문

Data structure

[DS] 데이터 구조(Data Structures)란?

YEJI ⍢ 2022. 12. 28. 00:55
728x90

데이터 구조(Data Structures)란?

효율적으로 데이터에 접근하고 데이터의 조직, 관리 저장을 의미합니다. 

데이터에 적용할 수 있는 함수들을 배우며 문제를 풀면서 효율적인 알고리즘을 사용할 수 있도록 도와줄 수 있도록 도와줍니다.

 

 

 

Softward 개발의 단계


 

① 요구사항 분석(Requirement analysis)

문제의 요구사항, 입출력의 형식 및 내용들을 정의하고 분석합니다.

 

② 설계(Design)

개념적인 구성요소를 설계하고 이어서 상세한 내용을 설계합니다.

 

③ 구현(Coding)

상세 설계된 내용을 프로그램이 언어를 사용하여 구현합니다.

 

④ 검증(Verification)

구현된 결과가 문제의 요구사항에 대한 만족 여부를 검증합니다.

 

 

 

Algorithms


어떤 문제를 해결하기 위한 일련의 절차나 방법입니다.

어떤 일을 수행하기 위한 명령어들의 집합이라고도 할 수 있습니다.

 

- 결과(output)을 생성해야 하고,

- 각 수행 단계는 명확해야 하고,

- 각 수행 단계는 실제 실현 가능한 내용이어야 하고,

- 유한 단계의 수행 후에 반드시 종료 하여야 합니다.

 

 

 

Algorithm의 표현 방법


① 자연어 (Natural language)

영어, 한글 등을 사용하여 algorithm의 각 단계를 설명합니다.

 

② 순서도 (Flow chart)

Algorithm의 실행 순서를 다이어그램(diagram)으로 나타냅니다.

 

③ 수도 코드 (Pseudo code)

자연어에 가까운 기호적 약속으로 algorithm을 표현합니다.

 

④ 프로그래밍 언어 (Programming language)

실제 프로그래밍 언어를 사용하여 표현합니다.

ex) C, C++, JAVA, PYTHON

 

 

 

좋은 프로그램 만들기 위해서는 


요구조건을 정확하게 수행하자!

메모리 사용량을 최소화하자!

응답 시간 및 처리 시간을 최소화하자!

읽기 쉽도록 만들자(readability)!

유지(maintenance)를 용이하게 하자

확장성을 높이자

신뢰성을 높이자

 

 

 

◡̈

'Data structure' 카테고리의 다른 글

[DS] 연결 리스트(Linked List)란?  (2) 2022.12.29
[DS] 큐(Queue)란?  (0) 2022.12.29
[DS] Stack 응용 (infix, prefix, postfix)  (0) 2022.12.28
[DS] 스택(Stack)이란?  (0) 2022.12.28
[DS] 객체지향(OOP) vs 절차지향(PP)  (0) 2022.12.28