개발/CS 4

알고리즘 - 2

1. 정렬 알고리즘 컴퓨터 과학에서 가장 많이 사용되는 연산 중 하나일 만큼 데이터를 활용함에 있어 정렬은 매우 중요하다. 예를 들자면, 당장 이 글을 쓰고 있는 티스토리에서도 글이 수백 개가 넘어간다면 카테고리별 혹은 날짜별 같은 특정한 정렬 기준에 따라 나열되어 있지 않다면 사람이 찾을 때도, 컴퓨터가 찾을 때도 많은 시간을 요구한다. 정렬 방법은 정렬이 수행될 때 데이터가 저장되어 있는 위치에 따라 내부 정렬, 외부 정렬로 구분한다. 내부 정렬은 데이터의 용량이 주기억장치(RAM) 저장 공간보다 작을 때 수행하는 정렬 방법이며 다양한 알고리즘에서 흔하게 사용되고 있는 정렬 방법이다. 외부 정렬은 내부 정렬의 반대의 케이스로 데이터를 보조 기억장치(HDD, SSD)에 저장하고 일부 데이터만 주기억장치..

개발/CS 2021.12.11

알고리즘 - 1

1. 알고리즘이란? 이론적으로 컴퓨터를 사용한 문제 해결의 가능성이라는 측면에서 0개 이상의 입력과 1개 이상의 출력이 있어야 한다, 각 명령은 단순 명확해야 한다, 한정된 수의 단계를 거친 후 종료되어야만 한다, 모든 명령은 컴퓨터에서 실행 가능해야 한다.로 총 네 가지의 조건을 만족해야 한다. 하나의 문장으로 종합하자면 주어진 문제의 대한 해답으로 모호함 없이 간단하며 컴퓨터가 수행 가능한 유한개의 명령을 순서에 따라 구성한 것이다. 다만 컴퓨터로 해결할 수 있어도 처리 과정이 너무 오래 걸려 현실적으로 해결할 수 없는 문제도 있기에 효율성 또한 충분히 고려되어야 할 조건이다. 2. 자료구조와의 연관성 효율적인 프로그램을 위해서는 효율적인 알고리즘이 필요하며 효율적인 알고리즘을 위해 적합한 자료구조를..

개발/CS 2021.12.09

자료구조 - 2

트리 1. 트리의 개념 트리는 데이터 간의 관계를 나타내는 비선형 자료구조로 특정 조직의 조직도를 대표적인 예로 들 수 있다. 트리는 데이터가 저장되는 노드와 다른 노드를 연결하는 가지로 구성되며 여러 가지들을 이용하여 계층적인 관계를 갖는다. 각 노드의 정보 항목과 뻗어져 나가는 가지를 합쳐 트리라고 부르는데 아래 그림에는 10개의 노드와 9개의 가지가 존재한다. 내부가 모두 비어있는 트리인 빈트리가 아닐 경우 최상위 노드를 루트라 부르며 사장실이 루트가 된다. 각 노드에서 하단으로 향하는 가지의 수를 차수라고 부르며 사장실의 차수는 3개, 그 외의 노드의 차수는 1개로 볼 수 있고(최 하단 팀 제외) 해당 트리의 차수를 얘기할 때는 제일 큰 차수인 3이 된다.트리에는 단말 노드 또는 잎 노드가 있는데..

개발/CS 2021.12.08

자료구조 - 1

1. 자료구조란? 자료(데이터)의 효율적인 처리를 위해 자료들 간의 논리적 관계를 추상화를 통해 구조화한 것을 자료 구조라 부른다. 여기서 말하는 추상화란 시내버스, 고속버스, 공항버스 등을 묶어 버스라 부르고 버스, 지하철, 택시를 묶어 대중교통이라고 부르는 것처럼 자료들이 가지는 공통의 특징만을 뽑아 정의한 것이다. 개발자가 사용하는 프로그래밍 언어에서의 자료구조의 형태는 '미리 정의된 자료구조'와 개발자가 정의하여 사용하는 '사용자 정의 자료구조'로 구분된다. 미리 정의된 자료구조는 해당 언어가 설계단계나 컴파일러 단계에서 개발자에게 제공하는 자료구조이며 사용자 정의 자료구조는 개발 중 개발자에 의해 만들어진 리스트, 스택, 큐, 트리와 같은 자료구조이다. 부적절한 자료구조의 사용은 개발의 복잡도를..

개발/CS 2021.12.06