🕷️ Crawler Inspector

URL Lookup

Direct Parameter Lookup

Raw Queries and Responses

1. Shard Calculation

Query:
Response:
Calculated Shard: 0 (from laksa107)

2. Crawled Status Check

Query:
Response:

3. Robots.txt Check

Query:
Response:

4. Spam/Ban Check

Query:
Response:

5. Seen Status Check

ℹ️ Skipped - page is already crawled

📄
INDEXABLE
CRAWLED
19 days ago
🤖
ROBOTS ALLOWED

Page Info Filters

FilterStatusConditionDetails
HTTP statusPASSdownload_http_code = 200HTTP 200
Age cutoffPASSdownload_stamp > now() - 6 MONTH0.6 months ago
History dropPASSisNull(history_drop_reason)No drop reason
Spam/banPASSfh_dont_index != 1 AND ml_spam_score = 0ml_spam_score=0
CanonicalPASSmeta_canonical IS NULL OR = '' OR = src_unparsedNot set

Page Details

PropertyValue
URLhttps://c.algorithmexamples.com/web/data_structures/graphs/Bellman-Ford.html
Last Crawled2026-03-19 03:25:40 (19 days ago)
First Indexed2025-09-01 01:05:14 (7 months ago)
HTTP Status Code200
Meta Title2000+ Algorithm Examples in Python, Java, Javascript, C, C++, Go, Matlab, Kotlin, Ruby, R and Scala
Meta Description2000+ Algorithm Examples in Python, Java, Javascript, C, C++, Go, Matlab, Kotlin, Ruby, R and Scala
Meta Canonicalnull
Boilerpipe Text
Bellman- Ford Algorithm The Bellman-Ford algorithm is a graph search algorithm that finds the shortest path from a single source node to all other nodes in a weighted graph, even when the graph contains negative weight edges. Conceived by Richard Bellman and Lester Ford in the late 1950s, it is a popular choice for solving the single-source shortest path problem due to its simplicity and ability to handle negative weight cycles. The algorithm essentially iterates through the graph's edges and updates the shortest path estimates iteratively until a fixed point is reached or a negative-weight cycle is detected. In the Bellman-Ford algorithm, the process of edge relaxation is performed, which involves updating the shortest path estimates by iterating through all the edges in the graph. The algorithm runs for (V-1) iterations, where V is the number of vertices in the graph, and in each iteration, it attempts to improve the current shortest path estimates. If a negative-weight cycle is present in the graph, the algorithm will detect it by running an extra iteration and checking if any shortest path estimates continue to be updated. This allows the Bellman-Ford algorithm to report the presence of negative-weight cycles and warn that no solution exists in such cases. Despite being slower than other shortest path algorithms like Dijkstra's algorithm, the Bellman-Ford algorithm remains a popular choice for its versatility in handling graphs with negative weights and its ease of implementation. #include<stdio.h> #include<stdlib.h> #include<limits.h> #include<string.h> //Structure for storing edge struct Edge{ int src,dst,weight; }; //Structure for storing a graph struct Graph{ int vertexNum; int edgeNum; struct Edge* edges; }; //Constructs a graph with V vertices and E edges void createGraph(struct Graph* G,int V,int E){ G->vertexNum = V; G->edgeNum = E; G->edges = (struct Edge*) malloc(E * sizeof(struct Edge)); } //Adds the given edge to the graph void addEdge(struct Graph* G, int src, int dst, int weight){ static int ind; struct Edge newEdge; newEdge.src = src; newEdge.dst = dst; newEdge.weight = weight; G->edges[ind++]= newEdge; } //Utility function to find minimum distance vertex in mdist int minDistance(int mdist[], int vset[], int V){ int minVal = INT_MAX, minInd ; for(int i=0; i<V;i++) if(vset[i] == 0 && mdist[i] < minVal){ minVal = mdist[i]; minInd = i; } return minInd; } //Utility function to print distances void print(int dist[], int V){ printf("\nVertex Distance\n"); for(int i = 0; i < V; i++){ if(dist[i] != INT_MAX) printf("%d\t%d\n",i,dist[i]); else printf("%d\tINF",i); } } //The main function that finds the shortest path from given source //to all other vertices using Bellman-Ford.It also detects negative //weight cycle void BellmanFord(struct Graph* graph, int src){ int V = graph->vertexNum; int E = graph->edgeNum; int dist[V]; //Initialize distances array as INF for all except source //Intialize source as zero for(int i=0; i<V; i++) dist[i] = INT_MAX; dist[src] = 0; //Calculate shortest path distance from source to all edges //A path can contain maximum (|V|-1) edges for(int i=0; i<=V-1; i++) for(int j = 0; j<E; j++){ int u = graph->edges[j].src; int v = graph->edges[j].dst; int w = graph->edges[j].weight; if(dist[u]!=INT_MAX && dist[u] + w < dist[v]) dist[v] = dist[u] + w; } //Iterate inner loop once more to check for negative cycle for(int j = 0; j<E; j++){ int u = graph->edges[j].src; int v = graph->edges[j].dst; int w = graph->edges[j].weight; if(dist[u]!=INT_MAX && dist[u] + w < dist[v]){ printf("Graph contains negative weight cycle. Hence, shortest distance not guaranteed."); return; } } print(dist, V); return; } //Driver Function int main(){ int V,E,gsrc; int src,dst,weight; struct Graph G; printf("Enter number of vertices: "); scanf("%d",&V); printf("Enter number of edges: "); scanf("%d",&E); createGraph(&G,V,E); for(int i=0; i<E; i++){ printf("\nEdge %d \nEnter source: ",i+1); scanf("%d",&src); printf("Enter destination: "); scanf("%d",&dst); printf("Enter weight: "); scanf("%d",&weight); addEdge(&G, src, dst, weight); } printf("\nEnter source:"); scanf("%d",&gsrc); BellmanFord(&G,gsrc); return 0; }
Markdown
[![logo](https://cdn.algorithmexamples.com/staging/images/icons/logo.svg)](https://www.algorithmexamples.com/) [![logo](https://cdn.algorithmexamples.com/staging/images/icons/logo_wh.svg)](https://www.algorithmexamples.com/) # Bellman- Ford Algorithm The Bellman-Ford algorithm is a graph search algorithm that finds the shortest path from a single source node to all other nodes in a weighted graph, even when the graph contains negative weight edges. Conceived by Richard Bellman and Lester Ford in the late 1950s, it is a popular choice for solving the single-source shortest path problem due to its simplicity and ability to handle negative weight cycles. The algorithm essentially iterates through the graph's edges and updates the shortest path estimates iteratively until a fixed point is reached or a negative-weight cycle is detected. In the Bellman-Ford algorithm, the process of edge relaxation is performed, which involves updating the shortest path estimates by iterating through all the edges in the graph. The algorithm runs for (V-1) iterations, where V is the number of vertices in the graph, and in each iteration, it attempts to improve the current shortest path estimates. If a negative-weight cycle is present in the graph, the algorithm will detect it by running an extra iteration and checking if any shortest path estimates continue to be updated. This allows the Bellman-Ford algorithm to report the presence of negative-weight cycles and warn that no solution exists in such cases. Despite being slower than other shortest path algorithms like Dijkstra's algorithm, the Bellman-Ford algorithm remains a popular choice for its versatility in handling graphs with negative weights and its ease of implementation. ``` #include<stdio.h> #include<stdlib.h> #include<limits.h> #include<string.h> //Structure for storing edge struct Edge{ int src,dst,weight; }; //Structure for storing a graph struct Graph{ int vertexNum; int edgeNum; struct Edge* edges; }; //Constructs a graph with V vertices and E edges void createGraph(struct Graph* G,int V,int E){ G->vertexNum = V; G->edgeNum = E; G->edges = (struct Edge*) malloc(E * sizeof(struct Edge)); } //Adds the given edge to the graph void addEdge(struct Graph* G, int src, int dst, int weight){ static int ind; struct Edge newEdge; newEdge.src = src; newEdge.dst = dst; newEdge.weight = weight; G->edges[ind++]= newEdge; } //Utility function to find minimum distance vertex in mdist int minDistance(int mdist[], int vset[], int V){ int minVal = INT_MAX, minInd ; for(int i=0; i<V;i++) if(vset[i] == 0 && mdist[i] < minVal){ minVal = mdist[i]; minInd = i; } return minInd; } //Utility function to print distances void print(int dist[], int V){ printf("\nVertex Distance\n"); for(int i = 0; i < V; i++){ if(dist[i] != INT_MAX) printf("%d\t%d\n",i,dist[i]); else printf("%d\tINF",i); } } //The main function that finds the shortest path from given source //to all other vertices using Bellman-Ford.It also detects negative //weight cycle void BellmanFord(struct Graph* graph, int src){ int V = graph->vertexNum; int E = graph->edgeNum; int dist[V]; //Initialize distances array as INF for all except source //Intialize source as zero for(int i=0; i<V; i++) dist[i] = INT_MAX; dist[src] = 0; //Calculate shortest path distance from source to all edges //A path can contain maximum (|V|-1) edges for(int i=0; i<=V-1; i++) for(int j = 0; j<E; j++){ int u = graph->edges[j].src; int v = graph->edges[j].dst; int w = graph->edges[j].weight; if(dist[u]!=INT_MAX && dist[u] + w < dist[v]) dist[v] = dist[u] + w; } //Iterate inner loop once more to check for negative cycle for(int j = 0; j<E; j++){ int u = graph->edges[j].src; int v = graph->edges[j].dst; int w = graph->edges[j].weight; if(dist[u]!=INT_MAX && dist[u] + w < dist[v]){ printf("Graph contains negative weight cycle. Hence, shortest distance not guaranteed."); return; } } print(dist, V); return; } //Driver Function int main(){ int V,E,gsrc; int src,dst,weight; struct Graph G; printf("Enter number of vertices: "); scanf("%d",&V); printf("Enter number of edges: "); scanf("%d",&E); createGraph(&G,V,E); for(int i=0; i<E; i++){ printf("\nEdge %d \nEnter source: ",i+1); scanf("%d",&src); printf("Enter destination: "); scanf("%d",&dst); printf("Enter weight: "); scanf("%d",&weight); addEdge(&G, src, dst, weight); } printf("\nEnter source:"); scanf("%d",&gsrc); BellmanFord(&G,gsrc); return 0; } ``` [![logo](https://cdn.algorithmexamples.com/staging/images/icons/logo.svg)](https://c.algorithmexamples.com/web/data_structures/graphs/Bellman-Ford.html) [![logo](https://cdn.algorithmexamples.com/staging/images/icons/logo-alt-footer.svg)](https://c.algorithmexamples.com/web/data_structures/graphs/Bellman-Ford.html) - [![](https://cdn.algorithmexamples.com/staging/images/icons/soc_1.svg)](https://c.algorithmexamples.com/web/data_structures/graphs/Bellman-Ford.html) - [![](https://cdn.algorithmexamples.com/staging/images/icons/soc_2.svg)](https://c.algorithmexamples.com/web/data_structures/graphs/Bellman-Ford.html) - [![](https://cdn.algorithmexamples.com/staging/images/icons/soc_3.svg)](https://c.algorithmexamples.com/web/data_structures/graphs/Bellman-Ford.html) Copyrights © 2021 Algorithm Examples. All rights reserved. Designed by [“Art of energy from Roman Budaev”](https://c.algorithmexamples.com/web/data_structures/graphs/Bellman-Ford.html) ### LANGUAGE: ![](https://cdn.algorithmexamples.com/staging/images/icons/select.svg) ### DARK MODE: ### PROGRAMMING LANGUAGES: [![](https://cdn.algorithmexamples.com/staging/images/icons/main_1.svg) Python](https://python.algorithmexamples.com/) [![](https://cdn.algorithmexamples.com/staging/images/icons/main_2.svg) Java](https://java.algorithmexamples.com/) [![](https://cdn.algorithmexamples.com/staging/images/icons/main_3.svg) Javascript](https://javascript.algorithmexamples.com/) [![](https://cdn.algorithmexamples.com/staging/images/icons/main_4.svg) C\#](https://csharp.algorithmexamples.com/) [![](https://cdn.algorithmexamples.com/staging/images/icons/main_5.svg) C++](https://cplusplus.algorithmexamples.com/) [![](https://cdn.algorithmexamples.com/staging/images/icons/main_6.svg) C](https://c.algorithmexamples.com/) [![](https://cdn.algorithmexamples.com/staging/images/icons/main_7.svg) Ruby](https://ruby.algorithmexamples.com/) [![](https://cdn.algorithmexamples.com/staging/images/icons/main_8.svg) Scala](https://scala.algorithmexamples.com/) [![](https://cdn.algorithmexamples.com/staging/images/icons/main_9.svg) MATLAB](https://matlab.algorithmexamples.com/) [![](https://cdn.algorithmexamples.com/staging/images/icons/main_10.svg) Kotlin](https://kotlin.algorithmexamples.com/) [![](https://cdn.algorithmexamples.com/staging/images/icons/main_11.svg) Rust](https://rust.algorithmexamples.com/) [![](https://cdn.algorithmexamples.com/staging/images/icons/main_12.svg) R](https://r.algorithmexamples.com/) [![](https://cdn.algorithmexamples.com/staging/images/icons/main_13.svg) Go](https://go.algorithmexamples.com/)
Readable Markdownnull
Shard0 (laksa)
Root Hash12009677346676654400
Unparsed URLcom,algorithmexamples!c,/web/data_structures/graphs/Bellman-Ford.html s443