2009-04-21 8 views
1

Je travaille sur une tâche de devoirs et comme un "indice" on nous dit de trouver l'algorithme suivant, puis de le prouver à la réponse nécessaire. Soit L (1), L (2), .., L (k) des listes triées de n éléments chacune. Donnez un algorithme d'espace O (kn logk) prenant en charge l'opération O (log n + t) Locate, qui renvoie l'emplacement de t éléments.Pouvez-vous m'aider à comprendre cet algorithme?

Idéalement, je serai capable d'utiliser cet algorithme pour me donner un aperçu de la réalisation d'une meilleure solution (ce que veut l'affectation), mais cet algorithme moins efficace est censé m'inspirer, mais je ne peux pas comprendre IT out. Des pensées ou savoir ce que cet algorithme est? Merci!

+1

Les devoirs vous sont donnés pour que vous appreniez de lui. Si vous demandez ici, vous n'en apprenez pas, vous apprenez seulement à poser une question. Croyez-moi, il est préférable d'essayer de vous connaître et de donner la mauvaise réponse peut-être que de demander ici et de donner la bonne réponse (donnée par d'autres) car vous n'apprenez alors rien. –

Répondre

0

Probablement pas une fonction de tri puisque vous avez déjà deux listes triées. Cela me semble aussi être une recherche binaire.

1

Je ne peux pas sembler trouver celui qui donne O (log n + t), mais j'eu une pensée qui pourrait ou ne pourrait pas aider ...

O (log kn k) est la taille d'une table mappant chaque élément possible au numéro de la liste le contenant. Cependant, l'utilisation de cette fonction pour trouver la liste à regarder donne toujours le temps de recherche * O (log n) pour les éléments t, donc ce n'est pas vraiment ce qui est demandé ...

0

Je pense qu'il vous demande de trouver un algorithme inefficace d'abord, puis l'utiliser pour en faire un algorithme efficace. Cela ressemble à une recherche linéaire de listes, chacune avec une recherche binaire pour les parcourir. Cela nécessitera un espace O (2t), car vous devez copier les "coordonnées" des éléments t.

0

Même avec cette grosse notation O, je pense que c'est un problème de recherche binaire parce que vous avez les listes triées.

La complexité de l'espace reste la même car il s'agit d'un algorithme de division et de conquête, vous n'aurez donc pas de problème. Pour être très sûr, le t est-il en dehors de la logn, quelque chose comme O ((logn) + t)?

+0

Et n représente le nombre d'éléments ou d'éléments? – Cristina