CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Définition Complexité

[PoissonVolant]
[PoissonVolant]
Niveau 15
18 juin 2015 à 21:49:49

Bonjour à tous. Alors après plusieurs recherches infructueuses, je me tourne vers vous afin d'obtenir une définition de la complexité (en java notamment). Pourriez-vous m'aider s'il vous plaît?

Merci :)

Pseudo supprimé
Pseudo supprimé 18 juin 2015 à 22:07:27

La complexité algorithmique ?

[PoissonVolant]
[PoissonVolant]
Niveau 15
18 juin 2015 à 22:08:52

Yep :)

Pseudo supprimé
Pseudo supprimé 18 juin 2015 à 22:36:52

Je peux proposer une petite introduction informelle mais je précise que je ne m'y connais pas, d'autre pourront mieux en parler que moi, et je n'aborderais pas les mathématiques derrière sauf si c'est ce que tu recherches.

Déjà c'est pas spécifique à un langage alors je vois pas trop pourquoi tu dis "en Java notamment".
Mais j'imagine que ce qui t'intéresses c'est l'analyse de la complexité algorithmique.

Le but c'est d'évaluer l'efficacité d'un algorithme et pour ça on évalue son ordre de grandeur en nombre d'opérations.
On pourrait évaluer les algorithmes par le temps d'exécution mais on se rend compte que c'est pas assez fiable vu que le temps d'exécution d'un programme dépend de nombreux facteurs dont le microprocesseur, le compilateur, l'ordinateur sur lequel le programme tourne etc.

Donc on compte le nombre d'opérations de l'algorithme. Et ce nombre d'opérations doit s'exprimer en fonction de une ou plusieurs variables.

Par exemple, on a tab un tableau de chaînes de caractères de taille n. Et la fonction suivante d'affichage des éléments :

public void afficher(ArrayList<String> tab){
    for (String s : tab)
        System.out.println(s);
}

La structure de contrôle "for" ne compte pas comme une opération. On a donc une seule opération qui s'exécute autant de fois qu'il y a d'éléments dans le tableau. Le tableau est de taille n donc on a n opérations.

On dit que cet algorithme est de complexité linéaire en O(n).
Si ton nombre d'opération est un polynôme comme n²+2n+1 par exemple, il faut prendre le terme dominant, la complexité est donc polynomiale en O(n²).
Pour la recherche dans un tableau on ne se préoccupe pas de la position de l'élément à rechercher, on considère toujours le "pire des cas" donc que l'élément recherché est à la fin du tableau. Si un algorithme est de complexité O(n) cela veut dire que n est le nombre maximal d'opérations que l'algorithme effectue.
Ensuite il y a de nombreux types de complexité.

Sinon je ne vois pas pourquoi tes recherches n'ont pas été fructueuses il y a beaucoup de choses sur Internet et pour les mathématiques derrière il faut des notions d'analyse (notations de Landau).
Ensuite il y a aussi les classes de complexité mais il faut avoir certaines notions en calculabilité par exemple.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment