2012-09-14 3 views
0

나는 일련의 항목이 있습니다. 각 항목에는 ID와 PREVIOUS_ID 필드가 있습니다. 어떻게 효율적으로 정렬하고 모든주기 (오류 상태)를 감지 할 수 있습니까?이전에 알고있는 항목 정렬

복잡하게하려면 한 시퀀스로 정렬해야하지만 여러 항목의 PREVIOUS_ID가 같을 수 있습니다.

+0

ID로 정렬하고 싶거나 'PREVIOUS_ID'링크를 뒤집어서 정렬하고 싶습니까? – Lou

+0

나는 그들 자신을 정의하는 순서대로, 그들이 무엇을 뒤따라야 하는지를 지적함으로써 그들을 분류하고 싶다. – ironfroggy

+1

[id : 1, prev : none] B [id : 2, prev : 1] C [id : 3, prev : 1]을 어떻게 분류 하시겠습니까? – Kwariz

답변

1

임의로 하나를 선택하고 이전 항목이 없을 때까지 이전 ID 경로를 따르십시오. 이 시점에서 항목이 남아 있지 않은 경우 다시 시작하고 이전에 선택하지 않은 항목을 선택하여 시작합니다.

항상주기를 감지 할 수 있도록 방문한 항목 집합을 유지하십시오.

+0

여러 항목이 이전 ID를 공유 할 수 있다는 내용을 잊어 버렸습니다. – ironfroggy

+3

http://en.wikipedia.org/wiki/Topological_sorting –