이 강좌는 널널한 개발자님의 강의를 기반으로 작성한 글입니다.
자료를 정리하는 이유
프로그래밍을 공부하다보면 주위에서 이렇게들 이야기를 한다. 자료구조랑 알고리즘(문제 해결에 관한 공식)이 중요하다고 한다. 그러면 왜 자료를 정리할까? 자료를 잘 아는것도 중요하지만 그것을 나중에 찾기 쉽게 정리라는 것이 필요하다.
어떻게 정리할 것인가?
- 이름 순으로, 키순으로 정렬(Sort)한다.
- 분야(카테고리)를 나누고 성질이 비슷한 것들을 따로 모은다.
- 필요하다면 ‘단위와 규격’을 만든다.
- 생각해볼 문제
- 주민등록번호가 일련번호가 아닌 이유는 무엇일까?
- 책을 가나다 순으로 정리(정렬)해야 할 이유는 무엇일까?
- 가나다 순은 포기하고 분야별로 책을 나누는 것은 잘못된 선택일까?
- 효율 좋은 사람은 ‘정리’를 잘 한다.
- 지저분한 방을 깨끗이 정리하는 규칙이 알고리즘이다.
- 일정규칙으로 자료를 나열(혹은 정리)하 는 것이 자료구조이고 구조화된 자료에서 원하는 것을 빨리 찾아내는 방법은 알고리즘이다.
자료구조 종류
- 선형구조 : 일렬로 줄을 세우는것으로 1차원 구조를 가진다.
- 비선형구조 : 2차원적 구조를 가지며 선형구조에 비해 매우 성능이 뛰어나다. 단, 선형구조에 비해 논리구조가 복잡하다. ex. 트리구조
- 비선형구조는 매우 성능이 뛰어남으로 우리가 흔히 데이터를 저장하는 DB가 전부 비선형구조를 취한다.