Gestisco il mio sito Web in cui le persone hanno la possibilità di avere amici. Questo è come devo conservare le amicizie:Connessione tra due utenti
id1 | id2
1 | 2
1 | 3
2 | 4
Fondamentalmente id utente 1 è diventato amico di user id 2 e ID 3 e l'utente 2 è amici id utente 4.
Quello che sto cercando di ottenere è come , ad esempio, sono 1 e 4 collegati. Attualmente è così:
1 -> 2 -> 4
Se si tratta di tra il 4 e 3 sarebbe:
4 -> 2 -> 1 -> 3
L'idea è quella di trovare il più velocemente legame tra quei due possibile
L'unico modo Posso pensare a creare un grande ciclo enorme con un sacco di loop e cose del genere che probabilmente possono essere migliori e più efficienti.
suona come una variazione sul venditore ambulante? – KevinDTimm
Questo non è banale. Guarda in [teoria dei grafi] (http://en.wikipedia.org/wiki/Graph_theory). – engineerC
Circa quante voci hai nella tabella delle amicizie? Qual è la densità del grafico, cioè la maggior parte delle persone ha un paio di amici o la maggior parte delle persone ha centinaia di amici? È necessario trovare il percorso più breve assoluto o qualsiasi percorso è ok? Vuoi trovare il percorso, non importa quanto tempo è lungo, oppure puoi fermarti ad esempio con 5 link max? 'Id1' è sempre minore di' id2'? – mellamokb