Big O, quelle est la complexité de l'addition d'une série de n nombres?

J'ai toujours pensé que la complexité de l':

1 + 2 + 3 + ... + n est O(n), et en additionnant les deux n par n matrices serait O(n^2).

Mais aujourd'hui j'ai lu un livre, "la formule de la somme des n premiers nombres entiers, c'est n(n+1)/2" et ensuite ainsi: (1/2)n^2 + (1/2)n, et donc O(n^2).

Ce qui me manque ici?

  • Il serait utile de savoir ce que "cela" est. Vous avez raison, en ajoutant jusqu'à la n des choses (de faire quelque chose de n fois, chacun de coût O(1)) est O(n). Mais si au lieu d'ajouter 1+2+3+ etc vous avez dû faire quelque chose une fois, et puis faire quelque chose deux fois, puis trois fois, etc., puis, après 1+2+3..+n étaient fait vous auriez fait n*(n+1)/2 choses, qui est en O(n^2).
  • Manquant? Bien que vous avez trouvé la formule pour une somme qui l'a expliqué. Quoi d'autre avez-vous besoin d'aide?
  • désolé pour l'ambiguïté, de la "ce" fait référence 1 + 2 + 3 + ... + n
  • donc, juste pour être clair, le "et alors" est votre gloss, pas ce que disait le livre? Parce que si oui, alors je pense que plusieurs des réponses ci-dessous sont correctes et que vous êtes à la confusion de la complexité d'un algorithme de sommation de n nombres en général avec le fait qu'il se trouve que nous pouvons calculer la somme de 1+2+..+n à l'aide d'une formule. Disons que nous avons été sommation de n cases au lieu de cela, 1+4+9+...n^2. La somme de ces (n)(n+1)(2n+1)/6, mais cela ne signifie pas que l'ajout de n des choses ensemble deviendrait O(n^3); il serait plutôt de dire que, dans un cas particulier que nous pourrions obtenir en O(1).
  • Cette lien c'est très utile.
  • Voir aussi math.stackexchange.com/questions/776477/...

InformationsquelleAutor user1032613 | 2012-02-12