-
1.2 알고리즘의 성능 분석자료구조(C)/자료구조와 알고리즘 2020. 7. 6. 15:29
알고리즘 성능 분석하는 이유 1. 최근 상용 프로그램의 규모가 이전에 비해서는 엄청나게 커지고 있기 때문이다. 2. 사용자들이 점점 빠른 프로그램을 선호한다. 수행시간 측정방법 단순하지만 확실한 방법은 알고리즘을 프로그래밍 언어로 작성하여 실제 컴퓨터상에 실행시킨 다음, 그 수행시간을 측정하는 것이다. 하지만 이 방법은 몇 가지 문제가 있다. 1. 알고리즘이 복잡한 경우에는 구현해야 된다는 큰 부담이 될 수 있다. 2. 똑같은 하드웨어를 사용하여 알고리즘들의 수행시간을 측정해야 한다. 3. 실험되지 않은 입력에 대해서는 수행시간을 주장할 수 없다. 4. 컴퓨터 언어에 따라 수행 시간이 달라질 수 있다. 알고리즘 복잡도 분석 방법 알고리즘 복잡도 분석 구현하지 않고 모든 입력을 고려하는 방법이고 실행 하드..
-
1.1 추상 자료형자료구조(C)/자료구조와 알고리즘 2020. 7. 6. 15:23
추상 자료형? 먼저 자료형(data type) 말 그대로, "자료(data)의 종류" "데이터 타입"이다. 자료형에는 기초 자료형, 파생 자료형, 사용자 정의 자료형 기초 자료형: char, int, float, double 파생 자료형: 배열, 포인터 사용자 정의 자료형:구조체 , 공용체, 열거형 자료형을 작성하 때는 실행 가능한 연산에 대해서도 신경 써야 한다. 데이터의 종류가 결정되면 그 데이터와 관련된 연산도 달라진다. 복잡한 자료형을 구현할 때는 연산이 연산자가 아니고 함수(function)로 작성한다. ADT(Abstract Data Type) 추상 자료형? ADT 추상적, 수학적으로 자료형을 정의한 것이다. 자료구조에는 이러한 추상 자료형을 프로그래밍 언어로 구현할 수 있다. 추상화(abst..
-
1.0자료구조와 알고리즘자료구조(C)/자료구조와 알고리즘 2020. 7. 6. 14:48
자료구조? 프로그램에서 자료를 정리하여 보관하는 구조 ex) 스택, 큐, 리스트, 사전, 그래프, 트리 등 컴퓨터 프로그램 구성 흔히 프로그램 = 자료구조+알고리즘 데이터(자료)를 처리하고 데이터 스트럭쳐(자료구조)를 사용하여 저장된다. 자료구조를 처리하는 절차가 있어야 한다. 이 절차가 알고리즘(algorithm)이다. 알고리즘? 컴퓨터로 문제를 풀기 위한 단계적인 절차 -> 문제와 컴퓨터가 주어진 상태에서 문제를 해결하는 방법을 정밀하게 장치가 이해할 수 있는 언어로 기술한 것이다. 조건 입력 : 0개 이상의 입력이 존재하여야 한다. 출력 : 1개 이상의 출력이 존재하여야 한다. 명백성 : 각 명령어의 의미는 모호하지 않고 명확해야 한다. 유한성 : 한정된 수의 단계 후에는 반드시 종료되어야 한다. ..