자료구조와 알고리즘

치맨·2022년 12월 27일
0

알고리즘,자료구조

목록 보기
2/11
post-thumbnail

자료구조와 알고리즘

목차

자료구조

자료구조란

  • 단어를 해석 해보면 자료(Data) 구조(Structure) Data들의 구조로서 Data들을 어떻게 처리하는가? 즉 자료(Data)들을 효율적으로 저장, 정렬하기 위한 방법이다.

  • 많은 글에서 도서관을 예로 든다. 도서관에 수많은 책들이 있지만 그냥 보관해둔다면 사용자가 찾는 책을 찾는데 하루종일 걸릴것이며, 찾다가 포기할것이다. 자료구조는 도서관에서 책을 효율적이고, 현명하게 정리 하는것과 비슷하다.

  • 효과적으로 설계된 자료구조는 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서 연산을 수행하도록 해준다.

  • 즉 자료구조를 효과적으로 설계할 수 있는 개발자는 시간적, 비용적으로 아낄수 있으며, 자료구조를 공부해야 하는 이유 중 하나이다.

자료구조 특징

  • 효율성 : 자료구조의 목적은 효율적인 데이터 관리 방법입니다. 따라서 상황에 맞게 효율적으로 자료를 관리해야합니다. 상황에 따라, 목적에 맞게 적절한 자료구조를 사용해야 합니다.

  • 추상화 : 추상화란 복잡한 자료, 모듈, 시스템 등으로 부터 공통적인, 핵심적인 부분만 간추려 내는 것입니다.
    핵심적인 부분만 간추려 단순화 시킴으로써 문제의 복잡성을 제어하고, 코드 관리를 용이하게 합니다.

  • 재사용성 : 자료구조를 설계할때 특정 프로그램에서만 동작하게 설계하지 않는다.
    다양한 프로그램에서 동작할 수 있도록 인터페이스만 이용하여 데이터를 처리하도록 하는 등(모듈화) 범용성 있게 설계하기 때문에 해당 프로젝트가 아닌 다른 프로젝트에서도 사용할 수 있다.

자료구조 종류

  • 단순구조
  • 자료 간 관계가 1:1인 선형구조
  • 자료 간 관계가 1:다 혹은 다:다 구조인 비선형구조
  • 파일구조로 구성되어있다.

알고리즘

알고리즘이란

출처: 위키백과 에 따르면 어떠한 문제를 해결하기 위해 정해진 일련의 절차이다. 계산을 실행하기 위한 단계적 절차를 의미하기도 한다. 즉, 문제 풀이에 필요한 계산절차 또는 처리과정의 순서를 뜻한다.

예를 들어 다리를 건너는 알고리즘은 아래와 같다

좋은 알고리즘의 특징

또한 출처: 위키백과에 따르면 좋은 알고리즘은 아래의 특징을 가지고 있다.

  • 정밀성 : 변하지 않는 명확한 작업 단계를 가져야 한다.
  • 유일성 : 각 단계마다 명확한 다음 단계를 가져야 한다.
  • 타당성 : 구현할 수 있고 실용적이어야 한다.
  • 입력 : 정의된 입력을 받아들일 수 있어야 한다.
  • 출력 : 답으로 출력을 내보낼 수 있어야 한다.
  • 유한성 : 특정 수의 작업 이후에 정지해야 한다.
  • 일반성 : 정의된 입력들에 일반적으로 적용할 수 있어야 한다.

알고리즘의 종류

아래의 사진과 같이 아주 많다. 심지어 더 있으나 조금 줄여봤다.

profile
기본기가 탄탄한 개발자가 되자!

0개의 댓글