• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Który fragment najważniejszy?

VPS Starter Arubacloud
0 głosów
164 wizyt
pytanie zadane 17 maja 2017 w C i C++ przez Ala123456 Użytkownik (760 p.)
zamknięte 17 maja 2017 przez Ala123456
//C++ program for Bellman-Ford's source shortest path algorithm.

#include <cstdlib>
#include <fstream>
#include <iostream>
#include <iomanip>
#include <ctime>
#include <stdio.h>
#include <limits.h>

using namespace std;
#define MAXV 999999
void BF(int, int, int**);
void wys(int ,int**);
void wys_BF(int*, int*, int, int);
void wys_BF(int *cost, int *number, int l_ver, int ver_s)   // function of display BF algorithm
{
    int *S = new int [l_ver];              
	int sp = 0;
    cout << "start: " << ver_s << endl;
    cout <<"end: " << " distance: " <<  "path: " << endl;
    for(int i=0; i<l_ver; i++)
    {   cout.width(3);
        cout << i<< "   ";
        cout.width(3);
    cout << cost[i] <<"          "; 
    for(int x = i; x!=-1; x = number[x]) 
      {
        S[sp++] = x;           
      while(sp)                 
        cout<< S[--sp] << " "; 
 
      }
      cout << endl;
    }
}
void BF(int ver_s, int l_ver,int ** graf)
{
    int *cost= new int[l_ver];    
    int *number= new int[l_ver];   
    for(int i=0; i<l_ver; i++)  
    {                                   
        number[i] = -1;     
        cost[i] = MAXV;     
    }
    cost[ver_s]=0;   
for(int i=1; i<=l_ver; i++)
{
    for(int w=0; w<l_ver; w++)
    {
        for(int k=0; k<l_ver; k++)
        {
            if((graf[w][k] !=0) && (cost[k]) >= (cost[w]+ graf[w][k]))
                {
                    cost[k]=cost[w]+graf[w][k];
                    number[k] =w;
                }
        }
    }
}   
wys_BF(cost, number, l_ver, ver_s);
}
void wys(int l_ver, int **graf)
{
for(int j=0; j<l_ver; j++)
    {
        cout << endl;
        for(int k=0; k<l_ver; k++)
        cout << setw(3) << graf[j][k];
     }
 
}
// main program

int main()
{
	int l_ver = 6;
    int ver_s =0;
    int **graf;
    graf = new int * [l_ver];
    for(int i=0; i<l_ver; i++)
        graf[i] = new int[l_ver];
         int grafnew[6][6]={{0, 1, 0, 0, 0, 0}, //przykładowy graf, działa poprawnie
                    {0, 0, 0, 5, 9, 0},
                    {3,-4, 0, 0, 0, 0},
                    {0, 0, 0, 0, 3, 2},
                    {0 ,0 ,-1,0, 0,-5},
                    {9, 0, 8, 0, 0, 0},
                                  };
 /*  int grafnew[6][6]={{0, 1, 0, 0, 0, 0},       // graf przykładowy tylko z dodatnimi wagami
                    {0, 0, 0, 5, 9, 0},              // działa poprawnie
                    {3, 4, 0, 0, 0, 0},
                    {0, 0, 0, 0, 3, 2},
                    {0 ,0 , 1,0, 0, 5},
                    {9, 0, 8, 0, 0, 0},
                                  }
								         */                                 
    for(int a=0; a<l_ver; a++)
    {
        for(int b=0; b<l_ver; b++)
        {
          graf[a][b] = grafnew[a][b];
        }
    }
    BF(ver_s, l_ver,graf);
    cout<<"przykladowy graf uzyty w algorytmie:";
    wys(l_ver, graf);
    cout << endl;
    return 0;
}

Jakby któs pomógł wybrac ok 15 linii najwazniejszych w tym kodzie Bellmana-Forda. I w kilku zdaniach uzasadnic dlaczego :D Z góry dziękuję 

komentarz zamknięcia: Znalezienie rozwiazania

1 odpowiedź

0 głosów
odpowiedź 17 maja 2017 przez Wiciorny Ekspert (277,020 p.)
W kilku zdaniach uzasadnij dlaczego mam coś wybierać: skoro na cały algorytm składa się kilka metod, generalnie nic nie działa jakby bez poprzednich? Więc jeśli np. coś jest niefunkcjonalne, bez którejś metody, to nie mogę jej pominąc i wybrać "WŁAŚNIE TO '.

Szukałbym miedzy 37-60 dlaczego? Bo powiedzmy- jest niezależna metoda, i generalnie przy zalożeniu że poprawne beda tablice na których operujemy- rozwiążę zadanie.

Podobne pytania

0 głosów
1 odpowiedź 248 wizyt
pytanie zadane 30 września 2018 w Python przez Deriquest Użytkownik (550 p.)
0 głosów
1 odpowiedź 337 wizyt
pytanie zadane 14 listopada 2016 w Java przez LightInWindow Użytkownik (720 p.)
0 głosów
1 odpowiedź 148 wizyt
pytanie zadane 27 lutego 2019 w Inne języki przez Marak123 Stary wyjadacz (11,190 p.)

92,964 zapytań

141,930 odpowiedzi

321,162 komentarzy

62,298 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...