Analyser et optimiser la complexité algorithmique
Analysez la complexité Big O de vos algorithmes et optimisez-les avec des structures de données appropriées et des algorithmes plus efficaces.
Coller dans votre IA
Collez ce prompt dans ChatGPT, Claude ou Gemini et personnalisez les variables entre crochets.
Tu es un expert en algorithmique et en structures de données avec une capacité pédagogique exceptionnelle. Je dois analyser et optimiser la complexité de mon code pour gérer des volumes de données plus importants. **Code à analyser :** ``` [COLLER_LE_CODE] ``` **Contexte :** - Langage : [EX: Python, JavaScript, Java, Go] - Volume de données actuel : [EX: 10 000 éléments] - Volume cible : [EX: 1 000 000 éléments] - Contraintes de temps d'exécution : [EX: < 100ms pour une réponse API] - Contraintes mémoire : [EX: max 512MB RAM disponible] Analyse la complexité et propose des optimisations : 1. **Analyse Big O actuelle** : calcule la complexité temporelle et spatiale de chaque fonction avec explication ligne par ligne. Identifie les boucles imbriquées, les opérations sur des structures inadaptées. 2. **Visualisation de la scalabilité** : montre comment le temps d'exécution évolue pour 10k, 100k, 1M et 10M éléments avec les complexités actuelles et cibles. 3. **Structures de données optimales** : identifie les cas où un Set remplace une recherche O(n) dans une liste, où un Map remplace des accès répétés, où un heap est plus adapté qu'un tri complet. 4. **Algorithmes alternatifs** : propose des algorithmes plus efficaces si applicable (ex: binary search, deux pointeurs, sliding window, programmation dynamique). 5. **Code optimisé** : implémente les optimisations proposées avec la complexité Big O finale. 6. **Benchmark** : fournis un code de benchmark pour mesurer l'amélioration réelle des performances. 7. **Trade-offs** : explique les compromis temps/espace des différentes approches.
Pourquoi ce prompt fonctionne
<p>Ce prompt est particulièrement efficace car il demande une analyse ligne par ligne de la complexité, forçant l'IA à raisonner explicitement sur chaque opération plutôt que de donner une réponse intuitive. Cette granularité permet d'identifier précisément la ligne ou la structure de donnée qui cause le goulot d'étranglement.</p><p>La visualisation de la scalabilité (performance à 10k, 100k, 1M éléments) est un outil de communication puissant pour convaincre les équipes d'investir dans l'optimisation : la différence entre O(n²) et O(n log n) semble abstraite, mais voir '100 secondes vs 0.3 secondes pour 1M éléments' rend l'urgence concrète et tangible.</p><p>La section sur les trade-offs temps/espace est souvent omise dans les discussions d'optimisation algorithmique, pourtant c'est une dimension critique : une solution O(1) en temps qui nécessite O(n) en espace peut être inutilisable dans un environnement à mémoire limitée. L'ingénierie est toujours une question de compromis.</p>
Cas d'usage
Résultat attendu
Analyse Big O détaillée, visualisation de la scalabilité, structures de données optimisées, code refactorisé et benchmark de comparaison.
Formez-vous en profondeur
Découvrez le skill complet sur Prompt Guide pour maîtriser cette technique de A à Z.
Voir sur Prompt GuideTermes du glossaire
Prompts similaires
Apprendre les bases de Git pour débutants
Apprenez Git de zéro avec des explications imagées, des exemples concrets, un workflow pratique et un cheatsheet des commandes essentielles.
Définir une stratégie Git pour une équipe
Définissez une stratégie Git complète adaptée à votre équipe : branching model, conventions, code review et gestion des releases.
Configurer un pipeline CI/CD avec GitHub Actions
Configurez un pipeline CI/CD professionnel avec GitHub Actions couvrant tests, sécurité, build Docker et déploiement multi-environnements.
Écrire des tests d'intégration pour une API
Créez des tests d'intégration API complets avec setup de base de données, authentification, CRUD et scénarios end-to-end.