ਬੈਕਟ੍ਰੈਕਿੰਗ ਅਭਿਯਾਰਥੀ ਹੱਲਾਂ ਨੂੰ ਕ੍ਰਮ ਦੁਆਰਾ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਤਿਆਗ (ਬੈਕਟ੍ਰੈਕ) ਆਂਸ਼ਿਕ ਅਭਿਯਾਰਥੀ ਤੋਂ ਜਿਵੇਂ ਹੀ ਇਹ ਮਾਨ valid ਹੱਲ ਵੱਲ ਨਹੀਂ ਲੈ ਸਕਦਾ। ਇਹ DFS ਦੁਆਰਾ ਹੱਲ ਸਪੇਸ ਨੂੰ ਨਿਯਮਿਤ ਢੰਗ ਨਾਲ ਖੋਜਦਾ ਹੈ, ਮਰੇ ਹੋਏ ਸਿਰਿਆਂ ਨੂੰ ਕੱਟਦਾ ਹੈ।
ਵਿਚਾਰ
ਚੁਣੋ -> ਖੋਜੋ -> ਅਣਚੁਣੋ। ਇੱਕ ਵਿਕਲਪ ਦੋ ਕੋਸ਼ਿਸ਼ ਕਰੋ, ਮੁੜ-ਕਰੋ; ਜੇ ਇਹ ਅਸਫਲ ਹੋ, ਇਸ ਨੂੰ ਪਰਤ ਲਾਓ ਅਤੇ ਅਗਲਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।
ਉਦਾਹਰਨ: ਸਾਰੀਆਂ ਕ੍ਰਮਾਂਬੱਧਤਾ
():
result = []
():
remaining:
result.append(path[:])
i ((remaining)):
path.append(remaining[i])
backtrack(path, remaining[:i] + remaining[i+:])
path.pop()
backtrack([], nums)
result
permutations([, , ])
