Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:СиАОД2
.CPP#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define N 7
int min( int a, int b)
{
if( a < b )
return a;
return b;
}
void main (void)
{
int G[N][N], D[N], SORT[N], TEMP[N], Item[N] ; //The Matrix of waight
int i, j, k, l, s;
randomize();
clrscr();
for( i = 0; i < N; i++ )
for( j = i; j < N; j++ )
{
if( i == j)
G[i][j] = 0;
else
{
G[i][j] = 1 + random(9);
G[j][i] = G[i][j];
}
}
printf( "\n\n\tThe Matrix of waight is:\n\n" ); //View
for( i = 0; i < N; i++ )
{
for( j = 0; j < N; j++ )
printf( " %d ", G[i][j] );
printf( "\n" );
}
getch();
printf( "\n‚ўҐ¤ЁвҐ ®¬Ґа ўҐаиЁл, Є®в®а п ў б ЁвҐаҐбгҐв: " );
scanf( "%d", &s ); //ALGORITM PHORDA-BELLMANA
for( i = 0; i < N; i++ )
{
D[i] = G[s][i];
Item[i] = D[i];
}
D[s] = 0;
Item[s] = 0;
for( i = 0; i < N; i++ )
{
SORT[i] = D[i];
TEMP[i] = 1;
}
for( i = 0; i < (N - 1); i++ ) //SORT B Poriadke Bozrastania
for( j = i+1; j < N; j++)
{
if( SORT[i] > SORT[j] )
{
k = SORT[i];
SORT[i] = SORT[j];
SORT[j] = k;
}
}
TEMP[s] = 0;
k = 1;
for( j = 0; j < N; j++ )
{
if( j != s)
{
for( i = 0; i < N ; i++)
{
if( Item[i] == SORT[k] && TEMP[i] != 0)
break;
}
k++;
for( l = 0; l < N; l++)
if( TEMP[l] != 0 )
{
D[l] = min( D[l], D[i] + G[i][l] );
}
TEMP[i] = 0;
}
}
printf( "\n\nђ ббв®пЁп Ё§ ўҐаиЁл ®¬Ґа %d ў® ўбҐ ®бв «млҐ:\n", s );
for( i = 0; i < N; i++ )
printf( " %d ", D[i] );
getch();
}
Соседние файлы в предмете Программирование