2012-06-15 3 views
1

내 컬렉션의 영화에 등급을 지정하는 데 도움이되는 바보 같은 스크립트를 작성하고 있습니다. 정렬이 필요한 영화 제목 배열이 있습니다. Merge-sort-like 재귀 알고리즘을 적용하여 등급에 따라 영화를 정렬하고 싶습니다. 비교할 때마다 문서의 양식을 업데이트해야합니다. 사용자는 A 또는 B 중 하나를 선택합니다 - 두 제목 중 더 좋은 것 -을 선택한 다음 "계속"버튼을 클릭하십시오. 이 정보를 사용하여 정렬을 진행합니다. 이 과정이 끝나면 사용자는 영화의 순서 목록을 생성하는 데 필요한 최소 2 진수 비교 질문에 대해 A 또는 B에 응답하게됩니다.사용자 입력이있는 재귀 함수

내 문제 : 어떻게 각 단계에 대한 양식에서 입력을 재귀 알고리즘을 기다릴 수 있습니까? confirm()과 같은 것을 사용하면 입력이 결정되는 동안 코드가 차단되지만 페이지 요소는이를 수행 할 수 없습니다. 몇 가지 불쾌한 타임 아웃 기능을 사용해야합니까? 어떤 종류의 글로벌 폐쇄를 유지 하시겠습니까? 이상적으로, "continue"버튼을 continueRecursion() 콜백에 연결 시키길 원하지만, 어떻게해야 할 지 잘 모릅니다.

어떻게 공격하나요?

+0

재귀를 나타내는 데 사용되는 데이터 구조는 '스택'입니다. 프로그래밍 방식의 스택은 스택이기 때문에 의미가 있습니다. 따라서 스택 데이터 구조를 만든 다음 스택의 각 수준에서 각 함수 호출을 나타내는 에뮬레이트 된 로컬 변수를 저장하십시오. 그런 다음 스택을 전역 변수에 넣으십시오. 그러면이 위치가 어디 있는지 알 수 있습니다. – cheeken

답변

1

함수 호출 사이에 결과를 저장하고 사용자를 루틴을 시작하는 사용자로 지정하십시오. 그래서

:

  1. 은, 사용자의 선택시 데이터를
  2. 현재 선택
  3. 을 얻기 루틴을 정렬 할 수있는 선택 + 이전 데이터를 제공합니다.
  4. 현재 데이터를 1 단계로 정렬하고 다시 계속하십시오.

데이터를 글로벌로 유지하거나 계속 전달해야합니다.