C++ 자료구조론(이석호)

[C++ Fundamentals of Data Structures/C++ 자료구조론(이석호)] 1.7 성능 분석과 측정 연습문제

ShuYan 2023. 9. 4. 23:46

1. 두 개의 함수 n²와 2^n/4를 여러 가지 n의 값에 대해 비교하라. 어느 때 두 번째 함수가 첫 번째 함수보다 커지는가?
 

 
 

 
3. 아래 두 프로그램 세그먼트에서 모든 명령문의 실행 횟수를 구하라.
 


 


4. 
(a) 프로그램 1.32의 모든 적절한 위치에 count를 증가시키는 명령문을 추가하라.
 

* x[6]={1,2,3,4,5,6} / n=5로 두고 문제 풀었음.
* countc로 표현하였음.
* 출력 결과

 
 
 (b) 명령문을 제거해서 이 결과 프로그램을 간소화 하라. 간소화된 프로그램은 (a)의 프로그램으로 계산된 count 값과 같은 값을 가져야 한다.
 

 
 
(c) 프로그램이 종료했을 때 count의 정확한 값은 얼마인가? count의 초기값은 0이라고 가정하라.

 
 
(d) 빈도를 이용하여 프로그램 1.32의 단계 수를 계산하라. 단계 수 테이블을 구체적으로 제시하라.

* 야매로 푼 거라 분명 틀립니다..
* 제 답 말고 다른 분의 답을 참고하시는 것을 추천 드립니다 .. 
 
 
 
 
5. 연습문제 4의 문항들을 프로그램 1.33의 함수 Transpose에 대해 수행하라.
(a) 프로그램 1.33의 모든 적절한 위치에 count를 증가시키는 명령문을 추가하라.
 

*countc로 표기함.
* 함수에 전역변수를 책에서는 int **a로 표현했으나 이중 포인터로 인식하는 오류 때문에 (ㅜㅜ) a[][3]으로 표현함.
* 2차원 배열을 정해두고 문제를 풀었음.
* 출력 결과

 
 
(b) 명령문을 제거해서 이 결과 프로그램을 간소화하라. 간소화된 프로그램은 (a)의 프로그램으로 계산된 count값과 같은 값을 가져야함.
 

 
 
(c) 프로그램이 종료했을 때 count의 정확한 값은 얼마인가? count의 초기 값은 0이라고 가정하라.

 
 
(d) 빈도를 이용하여 프로그램 1.33의 단계 수를 계산하라. 단계 수 테이블을 구체적으로 제시하라.
 

 
 
 
 
6. 연습문제 4의 문항들을 프로그램 1.34에 대하여 수행하라. 이 프로그램은 두 개의 행렬 n x n 행렬 a와 b를 곱하는 프로그램이다.
 
(a) 프로그램 1.34의 모든 적절한 위치에 count를 증가시키는 명령문을 추가하라.
 

*c배열이 있어서 count를 cc로 계산
* 3 x 3 배열로 가정 후 계산.

* 2 x 2 배열의 계산 결과와 실행 횟수 ( { {1,2}, {3,4} } x x{ {5, 6}, {7, 8} } )

 
 
(b) 명령문을 제거해서 이 결과 프로그램을 간소화하라. 간소화된 프로그램은 (a)의 프로그램으로 계산된 count값과 같은 값을 가져야함.
 

 
 
(c) 프로그램이 종료했을 때 count의 정확한 값은 얼마인가? count의 초기 값은 0이라고 가정하라.

 
 
(d) 빈도를 이용하여 프로그램 1.34의 단계 수를 계산하라. 단계 수 테이블을 구체적으로 제시하라.
 

 
 
 

7.
(A) 연습문제 4의 문항들을 프로그램 1.35에 대하여 수행하라. 이 프로그램은 a가 m x n 행렬이고 b가 n x p 행렬일 때, 두 행렬 a와 b를 곱하는 프로그램이다.
 
(a) 프로그램 1.33의 모든 적절한 위치에 count를 증가시키는 명령문을 추가하라.
 

*c배열이 있어서 count를 cc로 계산

* 3 x 2 배열과 2 x 2 배열 가정 후 계산.

 
 
(b) 명령문을 제거해서 이 결과 프로그램을 간소화하라. 간소화된 프로그램은 (a)의 프로그램으로 계산된 count값과 같은 값을 가져야함.
 

 
 
(c) 프로그램이 종료했을 때 count의 정확한 값은 얼마인가? count의 초기 값은 0이라고 가정하라.

 
 
(d) 빈도를 이용하여 프로그램 1.32의 단계 수를 계산하라. 단계 수 테이블을 구체적으로 제시하라.
 


 
(B) 어떤 조건이 충족될 때 두 개의 제일 바깥쪽 for 루프를 교환하는 것이 유익한가?

- m<p이면 두 for 명령문을 서로 교환 하는 것이 나을 것이다.

 

 

 

 

8. 다음 등식이 성립함을 보이라.

* 참고 : https://jaimemin.tistory.com/131

 

 

 

 

9. 다음 등식이 잘못되었음을 보이라.

 

* 참고 https://jaimemin.tistory.com/131 

 

 

 

 

10 - 16번은 생략 합니다이 .. !