本文共 2072 字,大约阅读时间需要 6 分钟。
Objective-C?????????
????????Bellman-Ford Algorithm?????????????????????????????????????????Objective-C????????????????????????????????????
??????????Richard Bellman?????????????DAG?????????????????????????????????????Dijkstra???????????????????????????????????????
?Objective-C?????????????????Edge?????????Edge???????????????
#import@interface Edge : NSObject @property (nonatomic, assign) NSInteger source; @property (nonatomic, assign) NSInteger destination; @property (nonatomic, assign) NSInteger weight;@end
?????????????????????????????????????
@interface BellmanFord { NSMutableDictionary *graph; NSArray *sources;} ????????????????????
BellmanFord *bellman = [[BellmanFord alloc] init];[bellman.graph setValue:[NSMutableArray new] forKey:[NSNumber numberWithInt:1]];NSLog(@"??????");
???????????????
???????
-(void)bellmanFordAlgorithm{ // ????????? int n = [self.graph valueForKey:@"???"]; int dist[] = {INF, INF, INF}; // ???? for (int i = 0; i < n; i++) { for (Edge *edge in [self.graph valueForKey:i+1]) { int u = edge.source; int v = edge.destination; int new_dist = dist[u] + edge.weight; if (new_dist < dist[v]) { dist[v] = new_dist; } } } // ???????? bool updated = true; while (updated) { updated = false; for (int i = 0; i < n; i++) { for (Edge *edge in [self.graph valueForKey:i+1]) { int u = edge.source; int v = edge.destination; int new_dist = dist[u] + edge.weight; if (new_dist < dist[v]) { dist[v] = new_dist; updated = true; } } } }} ???????????????
????????????????????????????????????????????????????????
????????????Objective-C????????????????????????????????????????????????????????????????????????
转载地址:http://cdnfk.baihongyu.com/