J'ai le problème algorithmique suivant:
Déterminer l'espace Turing complexité de reconnaître les chaînes d'ADN qui sont des palindromes Watson-Crick.
Les palindromes Watson-Crick sont des chaînes dont le complément inversé est la chaîne d'origine. Le complément est défini par lettre, inspiré de l'ADN: A est le complément de T et C est le complément de G. Un exemple simple pour un palindrome WC est ACGT.
J'ai trouvé deux façons de résoudre ce problème.
L'un nécessite un espace .
- Une fois que la machine a fini de lire l'entrée. La bande d'entrée doit être copiée sur la bande de travail dans l'ordre inverse.
- La machine lira ensuite les bandes d'entrée et de travail à partir de la gauche et comparera chaque entrée pour vérifier que la cellule dans la bande de travail est le complément de la cellule dans l'entrée. Cela nécessite un espace .
L'autre nécessite un espace .
- Lors de la lecture de l'entrée. Comptez le nombre d'entrées sur la bande d'entrée.
- Lorsque la lecture de la bande d'entrée est terminée
- copier le complément de la lettre sur la bande de travail
- copiez la lettre L à la fin de la bande de travail
- (Point de boucle) Si le compteur = 0, effacez la bande de travail et écrivez oui, puis arrêtez
- Si la bande d'entrée indique L
- Déplacer la tête d'entrée vers la gauche du nombre de fois indiqué par le compteur (nécessite un deuxième compteur)
- Si la bande d'entrée indique R
- Déplacer la tête d'entrée vers la droite du nombre de fois indiqué par le compteur (nécessite un deuxième compteur)
- Si la cellule qui contient la valeur sur la bande de travail correspond à la cellule actuelle sur la bande d'entrée
- décrémenter le compteur de deux
- Déplacez-en un vers la gauche ou la droite selon que R ou L est sur la bande de travail respectivement
- copier le complément de L ou R sur la bande de travail à la place du L ou R actuel
- continue la boucle
- Si les valeurs ne correspondent pas, effacez la bande de travail et écrivez non, puis arrêtez
Cela revient à environ espace pour stocker les deux compteurs, le complément actuel et la valeur L ou R.
Mon problème
Le premier nécessite à la fois du temps et de l'espace linéaires. La seconde nécessite temps et espace. On m'a donné le problème de la citation et j'ai proposé ces deux approches, mais je ne sais pas laquelle choisir. J'ai juste besoin de donner la complexité spatiale du problème.
La raison pour laquelle je suis confus
J'aurais tendance à dire que la seconde est la meilleure option car elle est meilleure en termes de temps, mais cette réponse ne vient que de ma chance et de l'élaboration d'un algorithme. Il semble que si je veux donner la complexité spatiale de quelque chose, il ne faudrait pas de chance pour trouver le bon algorithme. Suis-je en train de manquer quelque chose? Dois-je même trouver une solution au problème pour répondre à la complexité de l'espace?