Pourquoi tas de tri a une complexité de O(1)?

Je comprends que, à la fois rapide tri et la fusion de tri besoin O(n) espace auxiliaire temporaire par les sous-ensembles qui sont construits, et en place rapide de tri nécessite O(log n) espace auxiliaire pour la pile récursive des cadres. Mais pour des tas de tri, il me semble qu'il a aussi un pire des cas de O(n) auxiliaire de l'espace pour construire le temporaire tas, même si les nœuds sont juste des pointeurs vers les éléments réels.

Je suis tombé sur ce explication :

Seulement O(1) de l'espace supplémentaire est nécessaire parce que le segment est construit à l'intérieur du tableau à trier.

Mais je pense que cela signifie que le tableau d'origine forcément déjà eu à être mis en œuvre comme une sorte d'arbre? Si le tableau d'origine est juste un vecteur, il semble de mémoire pour un tas pourrait encore être affecté.

  • ce n'est pas la fonction de tri rapide si elle n'est pas en place. Et vous pouvez fusionner en place.
  • C'est une sorte de possible de faire un tri rapide constante avec les auxiliaires de l'espace, mais il est assez étrange que de nombreux programmeurs question si c'est encore un quicksort.
InformationsquelleAutor Herman Tran | 2014-03-06