這更多的是一種概念上的編程問題,如此忍受我的列表:排序與相對位置數據
假設你有一個電影場景的列表,每個場景可能會或可能不會提及過去/未來的場景在同一部電影中。我試圖找到排序這些場景的最有效的算法。當然,可能沒有足夠的信息來完全排序場景。
這裏是用Python一些示例代碼(相當多的僞代碼)澄清:
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()
我們的目標是在這種情況下relative_sort
回報[s4, s3, s2, s1]
。
如果有幫助,我可以分享我對算法的初始嘗試;對於它的蠻力,我感到有些尷尬。另外,如果你想知道,我正試圖解碼電影「Mulholland Drive」的情節。
僅供參考:因爲我的僞代碼是用Python編寫的,所以Python代碼只在這裏。