Livre sur l'algorithmie

Programmation

a marqué ce sujet comme résolu.

Bonsoir ! :)

Connaître un langage, c’est très bien. Connaître la syntaxe, savoir comment faire une condition, une boucle, et connaître quelques spécificité, c’est bien beau, mais si on ne sais pas comment développer quelque chose avec tout ça, ça ne sert pas à grand chose.

Le métier de développeur, c’est un métier où on doit résoudre des problèmes. On à une problématique, il faut trouver un moyen, via le code, de la résoudre.

J’ai regardé une vidéo ou la problématique était la suivante :

On à deux personnes qui utilisent un calendrier avec des créneaux de bloqués (des RDV par exemple). L’objectif, écrire un programme qui retourne les horaires durant lesquels ces deux personnes peuvent prendre RDV ensemble pendant un temps donné.

D’après ce que j’ai pu comprendre, c’est un exercice assez difficile. Je n’ai pas vraiment essayé plus que ça à le résoudre (j’avais pas la tête à ça), mais très honnêtement, je ne pense pas être capable de résoudre ce problème de la meilleur des façons (voir pas du tout).

Je recherche donc des ressources (des livres principalement, en version papier - j’aime les livres physiques - + PDF - parce que c’est plus pratique-) pour apprendre l’algorithmie (même pas sûr du nom).

Des livres ou autres ressources écrites (j’aimerais éviter les vidéos, je retiens moins facilement et c’est pas très pratique pour se rendre à un endroit précis), gratuites ou payantes.

En plus de cela, j’aimerais savoir une chose qui est toujours encore un peu floue pour moi : Dans l’algorithmie, on apprend quoi exactement ? L’exemple que j’ai donné plus haut est assez spécifique, mais avec de bonnes ressources, est-ce que je pourrais arriver à résoudre cette problématique ?

Qu’est ce qu’on apprend qui permet de résoudre ce genre de chose ? Je suppose qu’on voit pas un par un chaque cas possible. :p

Merci ! :)

PS : Je recherche quelques chose le plus complet possible. Une simple introduction ne m’intéresse pas trop. C’est quelque chose que je voudrais apprendre pour de vrai, pas juste regarder 3 minutes comment ça marche.

+0 -0

Je recherche donc des ressources (des livres principalement, en version papier - j’aime les livres physiques - + PDF - parce que c’est plus pratique-) pour apprendre l’algorithmie (même pas sûr du nom).

"Introduction to Algorithms" de Corman.

D’après ce que j’ai pu comprendre, c’est un exercice assez difficile.

Hum… je ne mettrais pas dans "assez difficile". Il suffit de regarder les moments où aucun des 2 n’a de rdv. Je ne pense même pas qu’il faille lire un livre d’algo pour résoudre cela.

En plus de cela, j’aimerais savoir une chose qui est toujours encore un peu floue pour moi : Dans l’algorithmie, on apprend quoi exactement ? L’exemple que j’ai donné plus haut est assez spécifique, mais avec de bonnes ressources, est-ce que je pourrais arriver à résoudre cette problématique ?

Qu’est ce qu’on apprend qui permet de résoudre ce genre de chose ? Je suppose qu’on voit pas un par un chaque cas possible. :p

  • des outils math pour évaluer les performances des algos (complexité) et qu’ils fonctionnent correctement
  • l’étude d’algos et structures de données bien connues
+1 -0

La banque de liens du forum Programmation donne quelques pistes, en complément de l’indémodable Cormen cité au-dessus (partie 7) : https://zestedesavoir.com/forums/sujet/2376/banque-de-liens/

Tu y trouveras des cours mais aussi des liens pour aller t’entraîner (c’est à mon avis plus efficace d’aller se confronter à un problème, d’identifier les types de données et les opérations dont tu auras besoin puis d’ouvrir ton livre à ces sujets, plutôt que de se farcir une lecture linéaire).

Un tuto existe également, et répond à la dernière question que tu te poses, allant dans le sens du post de @gbdivers : https://zestedesavoir.com/tutoriels/621/algorithmique-pour-lapprenti-programmeur/

On à deux personnes qui utilisent un calendrier avec des créneaux de bloqués (des RDV par exemple). L’objectif, écrire un programme qui retourne les horaires durant lesquels ces deux personnes peuvent prendre RDV ensemble pendant un temps donné.

Aucun livre ne t’apprendra à résoudre ce problème. En fait, la bonne question, c’est "comment je ferais cela à la main ?". Je pense que tu peux le faire : il suffit de comparer les deux calendriers et d’y repérer les "trous". Ensuite, tu décrit une procédé détaillé. Pour ce faire, tu devras préciser ce qu’est un calendrier (plus précisément, un planning). En l’occurrence, c’est un ensemble de rendez-vous.
Il donc va te falloir définir ce qu’est un un rendez-vous : par exemple, une date (année, mois, jour, heure, minute) et une durée. Pour faire des calculs, tu auras sans doute envie de représenter cela par deux nombres entiers (ton système informatique fait cela couramment).
En résumé, il faut procéder à l’analyse détaillée du problème. C’est à partir de cette analyse que tu va définir ton algorithme.

+0 -0

Merci pour vos réponses. :)

Je n’ai pas encore regardé le livre que vous me conseillez. Pour le moment, j’apprend avec France-IOI. C’est vraiment top comme truc. Après, je ne sais pas jusqu’où ça va, mais à mon avis, plus loin que mes connaissances actuelles.

@etherpin : Je sais bien qu’aucun livre ne m’apprendra ce cas précis. Je me posais juste la question de savoir si les bases qu’on apprend permettent, mis bout à bout, de résoudre ce genre de problème.

Je n’avais jamais fait d’algo avant… et maintenant que je découvre ça, je regrette de ne pas avoir pratiqué tout ça avant. :p

+0 -0

Aucun livre ne t’apprendra à résoudre ce problème.

Ce n’est pas tout à fait vrai, on peut apprendre des représentations par arbres d’intervalles qui sont des façons efficaces de représenter un emploi du temps. (S’il n’y a jamais de créneaux qui se recouvrent, on peut faire plus simple, mais ce n’est pas le cas en pratique.)

Avant d’acheter un livre, j’essaye toujours de voir si je peux trouver une version PDF pour le feuilleter et me faire une idée.

Bon, "Introduction to Algorithms" à l’air assez intéressant, mais je suis malheureusement parfaitement incapable de lire les moindres formules mathématiques utilisés.

Dès que les formules commencent à avoir des hiéroglyphes, des caractères plus petits que d’autres, placés plus haut ou plus bas, et le tout placé sur plusieurs lignes… je suis perdu.

Je ne sais pas à quel moment de la scolarité on apprendre ce genre de trucs, mais, ayant arrêté l’école en 4eme au Collège, je n’ai jamais appris ça.

Avant de poster ce message, j’avais acheté un livre Kindle sur Amazon pour apprendre l’algo (je n’avais pas trouvé de version PDF pour le regarder avant), j’ai demandé un remboursement pour le même problème : je n’arrivais pas à comprendre les formules utilisés.

France-IOI est très bien pour ça, car c’est expliqué simplement, avec des phrases bien construites que je peut comprendre. :D Pas de dessins en Égyptien.

Ce qui me fait peur en revanche, c’est que ces lacunes en math un peu plus poussés me freinent dans mon apprentissage de l’algo (ou du moins, m’empêche d’accéder à plusieurs centaines de ressources).

+0 -0

Je ne pense pas que les maths soient un frein. J’ai fais de l’algo très jeune, sans les ressources en maths que j’ai maintenant, ça ne m’a pas posé de problème particulier. D’ailleurs France-IOI vise un niveau pré bac.

À un « haut niveau » par-contre, les maths aident certainement. On peut faire des preuves sur des algorithmes de graphes par exemple. Mais l’essentiel est de comprendre le fonctionnement pas les maths derrière.

PS: Ça n’a pas été dit donc je me permet. On dit plus souvent algorithmique que algorithmie.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte