Dies ist eher eine begriffliche Programmierung Frage ist, so mit mir tragen:Sortieren einer Liste mit Relative Wegangaben
Sagen Sie bitte eine Liste von Szenen in einem Film haben, und jede Szene Bezug auf Vergangenheit kann oder auch nicht machen/zukünftige Szenen im selben Film. Ich versuche den effizientesten Algorithmus zum Sortieren dieser Szenen zu finden. Möglicherweise sind nicht genügend Informationen vorhanden, damit die Szenen vollständig sortiert sind.
Hier einige Beispiel-Code in Python (ziemlich Pseudo-Code) zu klären:
class Reference:
def __init__(self, scene_id, relation):
self.scene_id = scene_id
self.relation = relation
class Scene:
def __init__(self, scene_id, references):
self.id = scene_id
self.references = references
def __repr__(self):
return self.id
def relative_sort(scenes):
return scenes # Algorithm in question
def main():
s1 = Scene('s1', [
Reference('s3', 'after')
])
s2 = Scene('s2', [
Reference('s1', 'before'),
Reference('s4', 'after')
])
s3 = Scene('s3', [
Reference('s4', 'after')
])
s4 = Scene('s4', [
Reference('s2', 'before')
])
print relative_sort([s1, s2, s3, s4])
if __name__ == '__main__':
main()
Das Ziel ist relative_sort
Rückkehr [s4, s3, s2, s1]
in diesem Fall zu haben.
Wenn es hilfreich ist, kann ich meinen ersten Versuch mit dem Algorithmus teilen; Es ist mir peinlich, wie brutal es ist. Außerdem, wenn Sie sich fragen, ich versuche, die Handlung des Films "Mulholland Drive" zu entschlüsseln.
FYI: Das Python-Tag ist nur hier, weil mein Pseudocode in Python geschrieben wurde.