소개글
"알고리즘 2장 동적프로그래밍 연습문제"에 대한 내용입니다.
목차
없음
본문내용
4. 알고리즘 3.2(동적계획법으로 이항계수 구하기)를 인덱스가 0부터 k까지인 배열 하나만 사용하도록 수정하시오.
#include
#define max 100
int Binarycoefficient(int array[], int n)
{
int i;
if (n == 1)
return 0;
else
{
Binarycoefficient(array, n - 1);
for (i = n + 1; i > 0; i--)
array[i] += array[i - 1];
}
return 0;
}
void main()
{
static int array[max] = { 1,1, };
int n, r;
printf("enter n & r : ");
scanf_s("%d %d", &n, &r);
Binarycoefficient(array, n);
}
5. 최단경로 문제를 푸는 플로이드 알고리즘 2(알고리즘 3.4)를 사용하여 다음 그래프에 대해서 행렬 D(최단경로의 길이를 포함함) 와 행렬 P(최단경로의 중간정점 가운데 가장 높은 인덱스를 포함함)를 구축하시오. 그리고 수행되는 절차를 단계별로 보이시오.
#include
using namespace std;
int Graph[8][8] = { {0, 0, 0, 0, 0, 0, 0, 0}, //그래프를 배열로 표기
{0, 0, 4, 50, 1000, 1000, 10, 1000}, //초기화
{0, 3, 0, 1000, 18, 1000, 1000, 1000},
{0, 1000, 6, 0, 1000, 1000, 1000, 1000},
{0, 1000, 5, 15, 0, 2, 19, 5},
{0, 1000, 1000, 12, 1, 0, 1000, 1000},
{0, 1000, 1000, 1000, 1000, 1000, 0, 10},
{0, 1000, 1000, 1000, 8, 1000, 1000, 0} };
참고 자료
없음