효율적인 접근 및 수정을 가능케 하는 자료의 관리, 저장을 의미한다.
데이터 값의 모임, 또 데이터 간의 관계를 의미 한다.
효과적으로 설계된 자료구조는 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용 하면서 연산을 수행하도록 해준다.
자료구조에는 여러 종류가 있다.
프로그램을 설계할 때, 어떠한 자료구조를 선택할지는 가장 우선적으로 도려되어야 한다.
특정한 알고리즘을 반드시 필요로 하며, 해당 알고리즘은 특정 자료구조에서 가장 나은 성능을 발휘할 때와 같은 경우이다.
예 ) 삽입과 삭제가 빠른 동적배열, 검색이 빠른 해시테이블 사용
적절한 자료구조의 선택은 필수적이다.
*알고리즘
어떠한 문제를 풀어맺기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것.
단계적 절차를 의미한다
즉, 문제풀이에 필요한 계산절차 또는 처리과정의 순서를 뜻한다.
알고리즘은 9세기 페르시아의 수학자인 무함마드 알콰리즈미의 이름을 라틴어화한 알고리스무스(Algorismus)에서 유래한 표현이다.
-> 알고리즘이 수학자 이름이었음!!
자연어, 의사코드 -> 노트에 어떻게 풀지 작성하고 구현하기 위한 첫번 째 단계
*알고리즘의 성능
-시간 복잡도
문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가리킨다.
빅-오 표기법을 사용하여 나타낸다.(대문자 O 표기법)
데이터를 효율적으로 엑세스, 조작 관리 할 수 있도록 구조를 만들어 저장하고 관리 하는 것
특별한 구현 방법으로 지정하지 않은 자료형을 추상적 자료형이라고 부른다.
알고리즘이 문제를 해결하는데 필요한 자료의 형태와 자료를 사용한 연산들을 수학적으로 정의한 모델이다.
추상적 자료형은 무엇이 구현되어야 하는지 정의
자료구조 어떻게 구현할 것인지를 물리적인 형태로 구현
예를 들어서 스택은 추상적 자료형이다.
마지막에 입력된 데이터가 가장먼저 꺼내지는 방식으로 정의한 것.
구현측면에서 보면 배열로 구현할 수도 있고 연결리스트로 구현할 수도 있다.
잘 알려진 추상적 자료형들은 Stack, Queue, Tree, Graph, Map, Set, Array, List 등이 있다.
자료구조의 종류
-선형 자료구조 : 자료요소가 선형적으로 연결되어 있는 구조이며, 아푸디 자료가 1:1인 구조
ex) 배열, 연결리스트, 스택, 큐
-비선형 자료구조 : 자료 관계가 1 : N 혹은 N : N 구조로 계층구조를 갖는다.
ex) 트리, 그래프
'c# > 수업 내용' 카테고리의 다른 글
동적배열 (Dynamic Array)그리기 연습 (0) | 2021.09.14 |
---|---|
자료구조(배열) (0) | 2021.09.14 |
out, ref 키워드 (0) | 2021.09.13 |
params 키워드 (0) | 2021.09.13 |
is, as, typeof 연산자 (0) | 2021.09.13 |