본문 바로가기

it/개발자 모드

(9)
[자료구조] 선형구조와 비선형구조의 종류와 특징 * 선형 구조 1. 선형 구조란? -. 데이터가 일렬로 연결되어 있는 구조(자료구조가 1:1 선형 관계) -. 자료를 구성하는 원소들을 순차적으로 나열시킨 형태 2. 선형구조 종류별 특징 -. 순차리스트(Linear List) : 배열을 기반으로 구현된 리스트 > 메모리 공간을 연속적으로 사용하기때문에 이전 인덱스에서 다음 인덱스로의 접근 속도가 빠름 > 정적인 데이터 타입으로 배열의 크기를 변경할 수 없음 > 데이터의 삽입, 삭제 시 자료의 이동이 필요하기때문에 작업이 번거러움 -. 연결리스트(Linked List) : 메모리의 동적 할당을 기반으로 구현된 리스트 > 자료들을 임의의 메모리에 저장하여 자료항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 구조 > 배열의 복사나 재할당없이 ..
[자료구조] 재귀함수(Recursion Function) * 재귀함수 1. 재귀란? -. 자기 자신에게 되돌리는 것 2. 재귀함수란? -. 하나의 함수안에서 자신의 함수를 다시 호출하는 함수 -. 재귀함수는 자료구조나 알고리즘의 어려운 문제를 단순화하는데 사용 -. 재귀함수는 자신의 로직을 반복하다가 함수의 탈출조건이 만족되면 함수 종료 후 결과 도출 -. 반드시 탈출조건이 명시되어있어야 함(함수가 호출되면 함수를 위한 메모리 공간이 할당되기때문에 재귀함수의 탈출조건을 명시하지 않으면 무한반복이 되고 스택 오버플로우 발생하게 됨) 3. 재귀함수의 특성 -. 1 > 2 > 3 > 4 순으로 호출되어 4 > 3 > 2 > 1 순으로 종료되는 특성을 가짐 4. 재귀함수 예시 -. 탈출조건이 명시된 간단한 재귀함수 예시 void RecursiveFunc(int num..
[자료구조] 알고리즘(Algorithm) * 알고리즘 1. 알고리즘이란? -. 데이터의 처리 -. 어떠한 문제를 해결하기 위한 일련의 절차나 방법을 공식화한 형태로 표현한 것 2. 알고리즘의 조건 -. 입력 : 외부에서 제공되는 자료가 0개 이상 존재해야 한다. -. 출력 : 적어도 2개 이상의 서로 다른 결과가 존재해야 한다. -. 명확성 : 수행 과정은 명확하고 모호하지 않은 명령어로 구성되어야 한다. -. 유한성(종결성) : 유한 번의 명령어를 수행 후에 종료한다. -. 효율성 : 모든 과정은 명백하게 실행가능(검증가능)한 것이어야 한다. 3. 좋은 알고리즘이란? -. 메모리(공간)를 적게 쓰고 속도(시간)도 빠른 알고리즘 > 그러나 이를 모두 만족하는 만능 알고리즘은 존재하지 않음 > 일반적으로 메모리의 사용량보다 실행속도에 초점을 맞춤..
[자료구조] 자료구조(Data Structure) * 프로그램이란? -. 데이터를 표현하고, 그렇게 표현된 데이터를 처리하는 것. -. 프로그램 = 자료구조(Data의 표현) + 알고리즘(Data 처리) * 자료(Data)란? -. 현실 세계로부터 수집한 사실이나 개념의 값 또는 이들의 집합 -. 가공되지 않은 형태의 데이터 * 자료구조 1. 자료구조란? -. 데이터의 표현 -. 여러 데이터들의 묶음을 저장하고, 사용하는 방법을 정의한 것 -. 자료의 집합 -. 각 원소들 사이의 관계가 논리적으로 정의된 일정한 규칙에 의하여 나열되며 효율적으로 수행할 수 있도록 자료를 조직적, 체계적으로 구분하여 표현한 것 2. 자료구조를 배우는 이유 -. 데이터를 체계적으로 저장하여, 효율적으로 활용하기 위함 3. 자료구조의 선택기준 -. 작업의 효율성, 추상화, 재..