J'ai déjà des connaissances sur les algorithmes de base. Maintenant, je prévois d'étudier des algorithmes plus avancés et je décide d'aller avec Introduction aux algorithmes .
Je ne suis pas sûr, dois-je rafraîchir mes compétences en mathématiques avant de lire ce livre ou non? (J'oublie presque les mathématiques que j'apprends au lycée et au collège) Si ce livre a besoin de solides connaissances en mathématiques, veuillez suggérer des sujets qui en bénéficient.
Je souhaite en savoir plus sur l'implémentation, la conception et l'analyse d'algorithmes.
Le cours MIT qui utilise le livre CLR a un cours préalable spécifique. Le manuel utilisé par ce cours préalable est disponible gratuitement.
C'est ici:
Le cours préalable du cours préalable est le calcul à variable unique.
Comme @ user16764 le mentionne en référence aux en particulier MIT offres de cours (6.042) , une version de ce qui est normalement appelé mathématiques discrètes , combinés au calcul de première année (universitaire) sont les principales exigences pour comprendre de nombreux algorithmes (de base) et leur analyse.
Les algorithmes spécialisés ou avancés peuvent nécessiter des connaissances mathématiques supplémentaires ou avancées, telles que les statistiques/probabilités (programmation scientifique et financière), l'algèbre abstraite et la théorie des nombres (c'est-à-dire pour la cryptographie).
En tant qu'étudiant, mon cours de mathématiques discrètes avait le manuel Mathématiques discrètes avec applications de Susanna Epp, et un autre manuel que j'ai trouvé dans ma bibliothèque était Mathématiques discrètes par Kenneth Ross et Charles Wright. Une copie utilisée de qualité décente de l'un de ceux-ci est probablement un endroit raisonnable pour commencer (avec ou sans combinaison avec le MIT Open Course Ware, selon votre style d'apprentissage). Pour l'auto-apprentissage, j'ai souvent trouver deux sources de référence peut aider à clarifier les points que j'ai du mal à comprendre.
Une alternative que j'ai vue suggérée est Concrete Mathematics, Deuxième édition de Ronald L. Graham, Donald E. Knuth et Oren Patashnik. Je ne trouve pas ma copie pour le moment et je ne l'ai pas étudiée avec diligence, je ne peux donc pas faire de recommandation pour ou contre.
De la préface:
Mais qu'est-ce que les mathématiques concrètes? C'est un mélange de mathématiques continues et discrètes. Plus concrètement, c'est la manipulation contrôlée de formules mathématiques, utilisant un ensemble de techniques pour résoudre des problèmes.
Je noterai les commentaires du curmudgeon de Bill the Lizard dans cette entrée de blog " Les programmeurs de livres ne lisent pas vraiment ". Personnellement, je encore trouve Robert Sedgewick Algorithmes (maintenant 4e éd.) Moins intimidant et plus accessible.
En ce qui concerne la partie continue (à savoir nombres réels ) des mathématiques, Calcul par Stewart = semble être un tome fréquemment utilisé pour enseigner aux étudiants les Lumières qui proviennent de la différenciation et de l'intégration.
Ce ne sont pas vraiment autant de mathématiques en soi que le confort et la maîtrise du formalisme mathématique. Apprenez la terminologie de base des ensembles et le formalisme correspondant.
L'analyse des algorithmes, en particulier dans le contexte de la théorie de la complexité dans laquelle vous étudiez le problème de calcul sous-jacent (si vous essayez de faire quelque chose de plus substantiel que la notation "Big-Oh"), nécessite un investissement important en temps dans la théorie des graphes. et l'algèbre abstraite, le tout en plus d'une énorme dose d'habileté innée.
Je pense que vous êtes prêt à partir à moins que vous ne soyez préoccupé par l '"analyse" des algorithmes, pas seulement leur mise en œuvre. Ce cours nous est généralement et UD mathématiques ou cours CS dans la plupart des programmes d'études collégiales.
Comprendre comment implémenter les algorithmes de ce livre ne devrait pas être un problème