CHAPTER 08 정렬
·
Data Structure
8.1 정렬의 종류 정렬(sort) : 주어진 원소(레코드)들을 원하는 기준에 의해 나열하는 작업 ex) 파일을 크기 순서대로 정렬, 시험 점수를 내림차순으로 정렬 주 메모리에서 처리하는 내부 정렬(internal sort)과 하드 디스크와 같은 외부 기억장치에서 처리하는 외부 정렬(external sort)로 구분한다. 레코드는 정렬의 기준이 되는 key field와 다른 속성들로 이루어져 있다. 외부 정렬 정렬할 원소 개수가 메모리보다 훨씬 큰 경우 외부 정렬을 수행해야 한다. 외부 기억장치에 정렬해야 할 전체 원소의 수가 N개가 저장되어 있고, 메모리의 크기가 m이라고 가정하자. 외부 정렬은 다음과 같은 순서로 진행된다. 1. N개의 원소를 m으로 나누어 N / m 개의 세그먼트로 분할한다. 2. ..
CHAPTER 03 재귀 호출
·
Data Structure
3.1 재귀 호출의 개념 재귀 호출(recursion) : 함수의 실행 중에 자신을 다시 호출하는 상황 동일한 함수가 다시 호출되어 혼동될 수 있지만 시스템 입장에서는 또 다른 함수가 불리는 것과 같다. ​ 함수가 실행되면 함수의 실행 환경 정보(컨텍스트)가 저장된 활성 레코드가 생성되어 시스템 스택에 추가된다. 함수의 컨텍스트에는 지역 변수, 복귀 주소 등이 포함된다. 따라서 재귀 함수는 호출되는 횟수만큼 활성 레코드가 스택에 쌓이게 된다. ​ 프로그램 3.1 재귀문 팩토리얼 이전 프로그램 2.2에서 팩토리얼 함수를 다뤘었다. 반복문 팩토리얼 함수를 재귀문으로 변환하여 작성했다. ​ 프로그램 3.1은 재귀 함수로 10 ~ 20까지의 팩토리얼을 각각 계산하는 프로그램이다. 예를 들어 fact(4)를 호출..
CHAPTER 02 파이썬 자료구조
·
Data Structure
2.1 파이썬 언어의 특징 1. 파이썬은 인터프리터(interpreter) 방식의 언어이다. - 컴파일 과정 없이 문장 단위로 빠르게 실행과 테스트가 가능하다. 2. 파이썬은 객체 지향(object-oriented) 언어이다. - 클래스를 통하여 객체의 속성과 메소드를 정의하여 인간의 사고와 유사하게 고급 수준의 프로그램을 작성할 수 있다. 3. 파이썬은 동적 타이핑(dynamic typing) 언어이다. - C언어와 달리, 변수의 자료형을 선언할 필요 없이 변수에 값이 할당되는 순간 자료형이 결정된다. 4. 리스트, 집합, 딕셔너리 등 군집 자료형 기능이 우수하다. - 리스트, 집합, 딕셔너리 등 시퀀스 자료형과 군집 자료형 지원 기능이 우수하다. 5. 파이썬 변수는 값(리터럴)에 대한 참조이다. - ..
CHAPTER 01 자료구조 개요
·
Data Structure
1.1 소프트웨어와 자료구조 소프트웨어 : 특정 기능을 담당하는 단일 또는 복수의 프로그램 프로그램은 처리할 대상인 자료(데이터)와 처리 절차인 알고리즘으로 구성되며, 프로그램을 설계하는 작업을 프로그래밍 또는 코딩이라고 부른다. ​ 자료구조 : 프로그램을 통해 대량의 데이터를 효과적으로 저장하고 처리하기 위한 방법론 또는 자료구조 그 자체 형태에 따라 선형 자료구조(배열, 스택, 큐, 리스트)와 비선형 자료구조(트리, 그래프), 구현 방법에 따라 배열 방식과 연결 리스트 방식으로 구분 그 외 정렬, 탐색, 해싱 등의 관련 알고리즘도 자료구조의 학습 범위에 포함된다. 1.2 소프트웨어 개발 주기 소프트웨어는 요구사항, 문제 분석, 기능 설계, 구현, 검증의 5단계에 걸쳐 개발되고 단계를 순환하면서 개선된..