Les algorithmes d`écriture peuvent être accablants, même pour le développeur le plus expérimenté. Beaucoup d`entre eux mémorisent toutes les différentes approches d`un problème particulier. Cependant, que se passe-t-il si nous regardons plutôt un diagramme guidé sur la façon d`examiner un problème afin que nous puissions le résoudre ?
Cet article examine les algorithmes : que sont-ils, à quoi servent-ils les ressources et comment commencer à apprendre à écrire des algorithmes.
Qu`est-ce qu`un algorithme ?
Un algorithme est un ensemble d`instructions. Si vous comparez un algorithme avec une recette, vous pouvez voir à quoi ressemble un algorithme :
Itinéraire []- une liste de chaînes décrivant les étapes pour finir et présenter les burgers aux mangeurs affamés
Ex :[« Jetez la viande et séparez-la en 8 sections différentes », Roulez les sections en boule « », Aplatissez chaque boule en forme de disque. Tous les disques doivent avoir la même taille, « etc.] em>
Rendement : 8 portions
Un L`algorithme, lorsqu`il est écrit en code, suppose que vous connaissez au moins un langage de programmation et ses méthodes populaires, ses structures de données et comment l`utiliser. Le concept est similaire à la façon dont une recette suppose que vous connaissez certaines méthodes de cuisson et comment utiliser les accessoires de cuisine.
Un algorithme a une entrée et une sortie. Le résultat (résolution d`un gros problème) vient de la résolution de petits problèmes en cours de route.
A quoi sert un algorithme ?
Les algorithmes sont utilisés partout car ils résolvent des problèmes. développement informatique et Web, ils sont utilisés lors de l`écriture de code pour dire à l`ordinateur de faire quelque chose.
Si nous avions une liste de noms, par exemple, nous pourrions utiliser un algorithme de tri comme trier les bulles pour trier les noms par prénom ou nom. Nous pouvons également utiliser un algorithme de recherche binaire pour rechercher un nom dans cette même liste. Ce ne sont là que quelques-uns des algorithmes standard dont vous pouvez tirer parti.
Veuillez noter que vous n`avez jamais vraiment fini d`apprendre à écrire des algorithmes après avoir terminé un cours et vous vous améliorez simplement. Nous verrons un moyen de vous rapprocher de l`écriture d`algorithmes dans la section suivante.
Comment apprendre à écrire un algorithme : étape par étape
Voici les conseils étape par étape recommandés pour apprendre à écrire des algorithmes.
1. Apprenez un langage de programmation Java, JavaScript et Python sont tous des langages populaires ‚Äã‚Ä utilisé pour écrire des algorithmes informatiques. Choisissez une langue et apprenez-la de fond en comble.
Intégrez ces concepts à votre compréhension de la langue que vous choisissez :
Fonctions - fonctions anonymes, nommées et d`ordre supérieur
Objets - être capable de créer des objets, de manipuler des objets et d`utiliser des méthodes d`objet
Tableaux ou listes - être capable de créer des tableaux / listes, de les manipuler et d`utiliser les méthodes associées
Loop - tous deux traditionnels pour boucles et tableaux / méthodes de liste avancées
Classes
2. Structures de données
Vous devez avoir une bonne maîtrise des structures de données pour rendre vos algorithmes plus efficaces. Assurez-vous de savoir à quoi sert chaque structure de données et comment elle fonctionne.
Tableaux/listes. Découvrez comment manipuler un tableau/une liste et quel est le O majuscule des différentes méthodes d`insertion, de suppression et d`obtention. Il est important de savoir comment fonctionnent les tableaux/listes cachés afin de pouvoir comprendre la complexité temporelle et spatiale d`un algorithme.
Liste liée . Être capable d`expliquer le but d`une liste chaînée et en quoi elle diffère d`un tableau. Vous devez également connaître le Big O à partir de ses méthodes courantes.
Table de hachage. Comprendre comment fonctionne une table de hachage et quel est le grand O lorsque vous travaillez avec une table de hachage.
Empiler / code . Être capable de discuter des différences et des similitudes entre une pile et une file d`attente et des structures de données pouvant être utilisées pour ce type particulier de données abstraites.
Arbres . Utiliser des arbres pour réduire le temps d`exécution d`un algorithme est une bonne méthode. Les arbres binaires sont un outil très populaire dans la manipulation des algorithmes.
Graphes. Ce que les graphiques pourraient représenter et pourquoi les graphiques pourraient être utilisés dans la construction d`un algorithme.
3. Écrire des algorithmes : le processus de résolution de problèmes
Vous avez appris un langage de programmation de base et suffisamment de structures de données pour commencer. Toutes nos félicitations ! Commencez.
Commencez petit. Il est important de comprendre les quatre concepts du traité de George Pòlya sur le dépannage (voir Ressources . Ici aussi, quelques étapes ont été ajoutées pour analyser également son approche générale :
George Pòlya`s guide pour résoudre les problèmes
Comprendre le problème
Que recherchez-vous ?
Prenez le problème et expliquez-le avec vos propres mots - essayez d`expliquer à quelqu`un qu`il n`est pas techniquement bon.
Entrez les mots clés du problème pour vous aider à construire un plan de base - pas de code. Juste les étapes nécessaires pour obtenir une réponse.
Répétez ce plan pour créer une solution de code.
Si vous ne trouvez pas de solution, revenez à l`étape n. Assurez-vous de bien comprendre le problème. Renvoyez-vous le bon résultat ? y a-t-il quelque chose que vous avez peut-être manqué dans l`invite d`encodage ?
Quel est le classement Big O de votre solution ? Il y a quelque chose que vous pouvez faire pour faire de la solution un algorithme plus efficace en référence à la complexité spatiale ou complexité temporelle ?
4. Commencez petit
Cela commence par un algorithme de recherche de base qui parcourt une chaîne ou un tableau pour trouver une entrée. Si l`entrée n`est pas trouvée, renvoie false. S`il est trouvé, il renvoie true.
Développez cet algorithme pour débutant et utilisez d`autres structures de données pour voir comment d`autres pourraient avoir besoin d`un processus différent. Essayez de trier les entrées pour utiliser des algorithmes de recherche plus efficaces.
Utilisez des sites pour pratiquer des algorithmes tels que ceux répertoriés dans la section des ressources afin d`améliorer vos compétences.
5. Passer à des algorithmes plus difficiles
strong>
Après plusieurs itérations, vous pouvez passer à des algorithmes plus difficiles. À ce stade, vous devriez être en mesure de recréer certains des algorithmes de tri, y compris le tri à bulles et le tri par fusion. La recherche binaire devrait également faire partie de votre expérience de programmation quotidienne.
Continuez à utiliser des sites pour pratiquer des algorithmes afin d`améliorer vos compétences. Testez-vous avec des problèmes étiquetés légèrement plus difficiles pour voir comment vous vous en sortez.
Les meilleurs cours et formations sur les algorithmes
Chacun apprend un peu différemment. Voici quelques-uns des meilleurs cours et formations algorithmiques disponibles. Certains sont payants, mais il y en a aussi des gratuits. Cette liste n`est pas dans un ordre particulier.
Cours d`algorithmes en ligne
Voici quelques-uns des meilleurs cours d`algorithmes disponibles en ligne :
Diviser pour régner, trier et rechercher et algorithmes aléatoires
Recherche graphique, chemins plus courts et structures de données
Algorithme glouton, Arbres de couverture minimale et planification dynamique
Routes plus courtes revisitées, problèmes NP-Complets et que faire de leur sujet
4 mois
Prérequis : Le cours est indépendant de la langue, mais suppose que vous connaissez au moins un langage de programmation, des données de base et suffisamment de mathématiques pour savoir quelles sont les preuves.
Certificat : 49 $/mois jusqu`à la fin ; Audit : GRATUIT
Le professeur Tim Roughgarden de l`Université de Stanford enseigne des cours d`algorithmes sur Coursera. Ces cours couvriront à peu près tout ce dont vous avez besoin pour bien comprendre les algorithmes afin de réussir les entretiens techniques.
Ce cours fait partie du programme IIT Bombay Fundamentals of Computer Science XSeries. Les sujets abordés ici incluent le tri et la recherche, les algorithmes de nombres, les algorithmes de chaînes, les algorithmes géométriques et les algorithmes graphiques.
Prérequis : au moins un langage de programmation ; Le cours utilise Python dans les exemples
GRATUIT
Il s`agit d`un cours accéléré gratuit sur les algorithmes par Michael Littman d`Udacity. Utilisez les six degrés du phénomène de Kevin Bacon pour montrer comment fonctionnent les algorithmes. Pensez aux six degrés de séparation - il a été dit qu`il y a six liens sociaux ou moins les uns des autres. Utilisez le même concept mais avec les films et les acteurs de Kevin Bacon.
Prérequis : connaissance de base de JavaScript et des données
GRATUIT
Cette série d`exercices FreeCodeCamp vous aidera à réussir en résolvant de petits problèmes avant de passer aux plus difficiles. Les exercices à votre rythme utilisent la plateforme d`apprentissage FreeCodeCamp pour tester votre code.
Autoformation, principalement basée sur du texte et des exemples
Prérequis : JavaScript, Python, C ++ ou Java
GRATUIT
Dans ce cours gratuit, des aides visuelles et vidéo sont utilisées pour illustrer le fonctionnement des algorithmes. Les environnements de code intégrés rendent l`expérience utilisateur assez bonne. Des solutions potentielles sont incluses.
Livres d`algorithmes
Il existe plusieurs livres pour vous aider dans votre cheminement pour devenir un meilleur rédacteur d`algorithmes. Beaucoup d`entre eux sont disponibles dans une librairie locale et sur Amazon.
Grokking Algorithms est l`un des meilleurs livres sur les algorithmes imprimés. Créé par un artiste devenu développeur de logiciels, Bhargava adopte une approche illustrée pour vous aider à comprendre ou à utiliser intuitivement des algorithmes. Les exercices à la fin de chaque chapitre permettent de consolider le contenu du livre.
Ce livre adopte une approche de conception basée sur des modèles pour apprendre quand implémenter des algorithmes extraits. Vous apprendrez à coder les solutions puis à les améliorer à l`aide de structures de données avancées. Les solutions sont en Ruby, Java, C++ et C, mais sont facilement traduisibles dans vos langages favoris.
La quatrième édition des algorithmes de Sedgewick et Wayne est une fantastique introduction au monde des algorithmes. Les auteurs passent en revue plus de 50 des algorithmes les plus importants pour vous faire remarquer. Les éducateurs de Princeton ont développé un en ligne cours qui complète bien ce texte.
Ressource
Comment S'Améliorer Avec Les Algorithmes Javascript JavaScript: Questions
Shop
Best Python online courses for 2022
$
Best laptop for Fortnite
$
Best laptop for Excel
$
Best laptop for Solidworks
$
Best laptop for Roblox
$
Best computer for crypto mining
$
Best laptop for Sims 4
$
Best laptop for Zoom
$499
Latest questions
NUMPYNUMPY
psycopg2: insert multiple rows with one query
12 answers
NUMPYNUMPY
How to convert Nonetype to int or string?
12 answers
NUMPYNUMPY
How to specify multiple return types using type-hints
12 answers
NUMPYNUMPY
Javascript Error: IPython is not defined in JupyterLab