Je me demandais .. quelle est la complexité d'un algorithme qui commence avec n éléments (que je traverse en faisant quoi que ce soit). Je retire un élément, je le fais à nouveau .. Je retire un autre élément et je le fais à nouveau jusqu'à ce qu'il ne me reste plus qu'un élément. est-ce O (n log n)? Je ne peux pas le visualiser ...
Le célèbre mathématicien Gauss aurait trouvé une formule pour ce problème précis quand il était à l'école primaire. Et comme mentionné par @Henry dans les commentaires, c'est:
Source: Wikipedia
Comme le travail est effectué pour chaque entrée, c'est-à-dire, O(1) est requis pour chaque "élément". Par conséquent, le problème est dans O (n ^ 2).
La visualisation (aussi Wikipedia ) peut être vue comme un carré à moitié rempli:
Pour résoudre la complexité de O (n + n-1 + n-2 .... n fois), nous devons utiliser Sum pour la formule mathématique par voir ce lien
=> n+n+n...n times - (1+2+3...n times)
=> n^2- (n^2+n)/2
La complexité sera
(n^2-n)/2