Maison  >  Article  >  Comment apprendre la structure des données par vous-même

Comment apprendre la structure des données par vous-même

coldplay.xixi
coldplay.xixioriginal
2020-08-22 10:21:086797parcourir

La méthode d'auto-apprentissage de la structure des données : d'abord, dans la première étape, comprendre la structure des données, comprendre la composition de base et les performances, puis dans la deuxième étape, approfondir la structure des données, maîtriser la structure des données ; caractéristiques pertinentes, et être capable d'écrire du code ; enfin, dans la troisième étape, récupérer la structure des données, Appliquer les points de connaissances appris à des problèmes pratiques.

Comment apprendre la structure des données par vous-même

Comment auto-étudier la structure des données :

Phase 1 : Comprendre la structure des données

Étape 1 : Pour l'apprendre, vous devez savoir ce que sont les 10 structures de données de tableaux, listes chaînées, piles, files d'attente, tables de hachage, tables de saut, graphiques, arbres, tas et Pourquoi et comment le faire ? Xiaolu recommande de lire quelques livres de base sur la structure des données ou d'utiliser Baidu et Google pour comprendre brièvement à quoi sert chaque structure de données, pourquoi et comment le faire, puis vous pourrez simplement prendre. notes et blog.

Étape 2 : Chaque structure de données a ses avantages, ses inconvénients et ses performances. Alors, quelles normes utilisons-nous pour mesurer les performances des structures de données et des algorithmes ? La deuxième étape consiste à apprendre le contenu de l'analyse de complexité liée à la complexité temporelle et à la complexité spatiale. Cette partie du contenu est très importante, car les structures de données et les algorithmes à apprendre plus tard doivent avoir une norme de performance pour pouvoir le faire. différencier La résolution de problèmes sélectionne les structures de données et les algorithmes les plus performants.

La deuxième étape : structurer les données en profondeur

La première étape : écrire du code. Les dix caractéristiques et conditions d'utilisation les plus élémentaires ont été notées ci-dessus. Ensuite, nous procéderons à une étude approfondie de chaque structure de données depuis le début, les opérations impliquées dans la structure de données, telles que l'ajout, la suppression, la modification. , une vérification et d'autres opérations sont nécessaires. Implémentez-le vous-même et exécutez-le sur la machine. Lors de l'écriture du code, vous devez faire attention aux points suivants : les conditions aux limites, les pointeurs et les spécifications du code.

Cela vous rendra encore plus impressionné par le code. Vous devriez le prendre au sérieux chaque fois que vous écrivez du code. S'il n'y a aucun problème à écrire le code sur la machine, vous pouvez le faire vous-même en l'écrivant à la main avec un. stylo sur votre cahier, ce qui vous aidera à approfondir votre compréhension de la logique de votre code.

Étape 2 : Dans la première étape, nous avons découvert les normes de mesure des performances, puis dans l'étape suivante, nous reviendrons sur les 10 structures de données les plus couramment utilisées. . Vous vous demandez peut-être pourquoi ne pas effectuer une analyse des performances lors de l’écriture du code ? Je pense que l'avantage des étapes est que nous pouvons nous concentrer sur la résolution de problèmes. L'écriture de code consiste à exercer la capacité de réflexion et de logique de l'écriture de code. L'analyse des performances consiste à améliorer sa capacité d'analyse. Une fois l'analyse des performances terminée, jetons un coup d'œil. le code écrit auparavant et qui peut être optimisé. Pendant cette période, vous rencontrerez divers problèmes. Lorsque je rencontre des problèmes, je vais généralement sur Baidu ou Google pour les résumer et les enregistrer dans mon cahier à l'aide d'articles écrits par d'autres.

Étape 3 : Une fois l'analyse des performances de chaque structure de données terminée, procédez à une analyse approfondie de chaque donnée. Ce que je recommande dans un premier temps, c'est de lire quelques livres de base, qui n'impliquent pas un niveau de connaissances approfondi. Mais nous avons encore besoin d’au moins un livre sur la structure des données avec une analyse faisant autorité et approfondie afin d’avoir une compréhension approfondie de certains concepts. Après tout, les livres de base sont destinés à vous aider à démarrer. Nous pouvons utiliser ce contenu faisant autorité et complet pour vérifier les lacunes dans les points de connaissance sur la structure des données que nous avons appris.

Étape 4 : Et si l'apprentissage en profondeur seul était vraiment ennuyeux et compliqué ? Ensuite, nous l'analyserons avec des exemples concrets, tels que des jeux de devinettes sur les nombres, le problème du sac à dos 0/1 ? , Marche dans un labyrinthe, problème des huit reines, problème unique à somme complète moins, etc. Par exemple, dans un jeu de devinettes, nous pouvons réfléchir à la façon de deviner le bon nombre dans les plus brefs délais. Vous pouvez penser à utiliser la recherche binaire. Bon, posons-nous les problèmes de la recherche binaire. Au cours de ce processus, vous devez vous demander pourquoi ce n'est qu'ainsi que votre niveau de connaissances sera élargi. Par exemple, s'il y a des données en double dans la recherche binaire, comment le résoudre ?

Je tiens quand même à souligner qu'il faut se demander pourquoi, car psychologiquement parlant, le cerveau humain se conforme au principe de moindre résistance, c'est-à-dire que penser est la chose la moins appréciée à faire, alors ici nous devons faire marche arrière, de nouvelles percées peuvent-elles être réalisées. Si vous estimez qu'il n'y a aucun problème dans les deux étapes ci-dessus, nous passerons à la troisième étape ci-dessous pour récupérer la structure des données.

La troisième étape : Récupérer la structure des données

La première étape : À ce stade, vous avez peut-être beaucoup appris sur la structure des données, mais c'est le cas. est difficile à appliquer, alors comment peut-il être appliqué à des problèmes pratiques réels ? Avons-nous déjà compilé les points de connaissances fragmentés dans nos cahiers ? Que faire ensuite ? Nous pouvons utiliser des cartes mentales pour organiser systématiquement les connaissances, ce qui nous aidera à les renforcer davantage, qu'il s'agisse d'une révision ou d'une consolidation.

Deuxième étape : Après avoir organisé ce qui précède dans un système, allez sur Google ou Baidu pour rechercher des problèmes réels avec des solutions claires et utilisez-les pour l'analyse et l'étude. Vous trouverez dans ces projets réels, De nombreux problèmes impliquent plusieurs structures de données. Ce que nous avons résolu auparavant ne concernait qu'une seule structure de données. Essayez ensuite d'établir vous-même une connexion entre les structures de données, telles que les tableaux et les listes chaînées. Chaque structure de données a ses avantages et ses inconvénients. En apprenant, vous constaterez que les avantages d'une structure de données sont exactement les inconvénients d'une autre structure de données. Les tableaux sont continus dans l'espace mémoire et sont respectueux du cache du processeur, tandis que les listes chaînées sont un espace mémoire fragmenté en mémoire et ne sont pas bonnes pour le cache du processeur. . Les listes conviviales, mais chaînées, peuvent être développées dynamiquement, mais pas les tableaux.

Pour un autre exemple, afin d'améliorer l'efficacité du programme, nous devons remplacer une autre structure de données par une structure de données qui consomme plus d'espace mémoire si la mémoire est limitée et que l'efficacité d'exécution n'est pas élevée, nous pouvons utiliser l'efficacité d'exécution permettant d'économiser de la mémoire. Une structure de données légèrement inférieure remplace une structure de données qui prend beaucoup de mémoire et s'exécute rapidement.

Étape 3 : Apprenez à convertir des problèmes réels en structures de données apprises. Comment le convertir ? Par exemple : si vous étiez ingénieur, comment résoudriez-vous le problème de l’optimisation de l’algorithme de mise en cache des listes chaînées ? Convertissons d'abord le problème dans la structure de données que nous avons apprise, qui mentionne les listes chaînées. Nous savons maintenant qu'il existe des listes chaînées. Quelles opérations sont implémentées à l'aide des listes chaînées ? L'élimination des données, la recherche de données et la mise en cache des données impliquent toutes une recherche. Nous devons parcourir l'intégralité de la liste chaînée et la complexité temporelle est O(n).

Alors on se demande si on peut optimiser la recherche ? Trouvez une structure de données applicable en fonction des caractéristiques du problème ou des données. Les trois opérations de mise en cache impliquent une insertion, une suppression et une interrogation rapides des données. Quelles sont les structures de données que nous pouvons rapidement récupérer, supprimer et interroger dans notre cerveau ? Arbres binaires équilibrés, tables de hachage, tables de saut, etc. Par exemple, si nous choisissons une table de hachage, nous analyserons enfin si la complexité temporelle a été beaucoup optimisée, sinon nous passerons à une autre structure de données pour l'analyse des performances.

Il n'est pas difficile pour nous de constater que le problème réel sera décomposé étape par étape en l'analyse opérationnelle de base de la structure de données que nous avons apprise, puis d'utiliser les avantages, les inconvénients et l'analyse des performances de la structure de données nous avons appris à obtenir la solution optimale. Il n'y a pas de solutions, mais les problèmes réels rencontrés dans les entreprises sont souvent plus compliqués que les problèmes réels que nous utilisons dans la pratique.

Recommandations associées : Cours vidéo de programmation

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn