Maison Problème commun Comment apprendre la structure des données par vous-même

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

Aug 22, 2020 am 10:21 AM
数据结构

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comparez des structures de données complexes à l'aide de la comparaison de fonctions Java Comparez des structures de données complexes à l'aide de la comparaison de fonctions Java Apr 19, 2024 pm 10:24 PM

Lors de l'utilisation de structures de données complexes en Java, Comparator est utilisé pour fournir un mécanisme de comparaison flexible. Les étapes spécifiques comprennent : la définition d’une classe de comparaison et la réécriture de la méthode de comparaison pour définir la logique de comparaison. Créez une instance de comparaison. Utilisez la méthode Collections.sort, en transmettant les instances de collection et de comparateur.

Structures de données et algorithmes Java : explication détaillée Structures de données et algorithmes Java : explication détaillée May 08, 2024 pm 10:12 PM

Les structures de données et les algorithmes sont à la base du développement Java. Cet article explore en profondeur les structures de données clés (telles que les tableaux, les listes chaînées, les arbres, etc.) et les algorithmes (tels que le tri, la recherche, les algorithmes graphiques, etc.) en Java. Ces structures sont illustrées par des exemples pratiques, notamment l'utilisation de tableaux pour stocker les scores, de listes chaînées pour gérer les listes de courses, de piles pour implémenter la récursion, de files d'attente pour synchroniser les threads, ainsi que d'arbres et de tables de hachage pour une recherche et une authentification rapides. Comprendre ces concepts vous permet d'écrire du code Java efficace et maintenable.

Compréhension approfondie des types de référence en langage Go Compréhension approfondie des types de référence en langage Go Feb 21, 2024 pm 11:36 PM

Les types de référence sont un type de données spécial dans le langage Go. Leurs valeurs ne stockent pas directement les données elles-mêmes, mais l'adresse des données stockées. Dans le langage Go, les types de référence incluent des tranches, des cartes, des canaux et des pointeurs. Une compréhension approfondie des types de référence est cruciale pour comprendre les méthodes de gestion de la mémoire et de transfert de données du langage Go. Cet article combinera des exemples de code spécifiques pour présenter les caractéristiques et l'utilisation des types de référence dans le langage Go. 1. Tranches Les tranches sont l'un des types de référence les plus couramment utilisés dans le langage Go.

Structure de données PHP : l'équilibre des arborescences AVL, maintenant une structure de données efficace et ordonnée Structure de données PHP : l'équilibre des arborescences AVL, maintenant une structure de données efficace et ordonnée Jun 03, 2024 am 09:58 AM

L'arbre AVL est un arbre de recherche binaire équilibré qui garantit des opérations de données rapides et efficaces. Pour atteindre l'équilibre, il effectue des opérations de virage à gauche et à droite, en ajustant les sous-arbres qui violent l'équilibre. Les arbres AVL utilisent l'équilibrage de hauteur pour garantir que la hauteur de l'arbre est toujours petite par rapport au nombre de nœuds, réalisant ainsi des opérations de recherche de complexité temporelle logarithmique (O (logn)) et maintenant l'efficacité de la structure de données même sur de grands ensembles de données.

Analyse complète du cadre de collecte Java : disséquer la structure des données et révéler le secret d'un stockage efficace Analyse complète du cadre de collecte Java : disséquer la structure des données et révéler le secret d'un stockage efficace Feb 23, 2024 am 10:49 AM

Présentation de Java Collection Framework L'infrastructure de collection Java est une partie importante du langage de programmation Java. Elle fournit une série de bibliothèques de classes conteneur qui peuvent stocker et gérer des données. Ces bibliothèques de classes de conteneurs ont différentes structures de données pour répondre aux besoins de stockage et de traitement des données dans différents scénarios. L'avantage du framework de collection est qu'il fournit une interface unifiée, permettant aux développeurs d'exploiter différentes bibliothèques de classes de conteneurs de la même manière, réduisant ainsi la difficulté de développement. Structures de données de l'infrastructure de collection Java L'infrastructure de collection Java contient diverses structures de données, chacune ayant ses propres caractéristiques et scénarios applicables. Voici plusieurs structures de données courantes du cadre de collection Java : 1. Liste : Liste est une collection ordonnée qui permet de répéter des éléments. Li

La structure de données basée sur une table de hachage optimise les calculs d'intersection et d'union des tableaux PHP La structure de données basée sur une table de hachage optimise les calculs d'intersection et d'union des tableaux PHP May 02, 2024 pm 12:06 PM

La table de hachage peut être utilisée pour optimiser les calculs d'intersection et d'union de tableaux PHP, réduisant ainsi la complexité temporelle de O(n*m) à O(n+m). Les étapes spécifiques sont les suivantes : Utilisez une table de hachage pour mapper les éléments de. le premier tableau à une valeur booléenne pour déterminer rapidement si l'élément du deuxième tableau existe et améliorer l'efficacité du calcul d'intersection. Utilisez une table de hachage pour marquer les éléments du premier tableau comme existants, puis ajoutez les éléments du deuxième tableau un par un, en ignorant les éléments existants pour améliorer l'efficacité des calculs d'union.

Structures de données PHP SPL : injectez de la vitesse et de la flexibilité dans vos projets Structures de données PHP SPL : injectez de la vitesse et de la flexibilité dans vos projets Feb 19, 2024 pm 11:00 PM

Présentation de la bibliothèque de structures de données PHPSPL La bibliothèque de structures de données PHPSPL (Standard PHP Library) contient un ensemble de classes et d'interfaces pour stocker et manipuler diverses structures de données. Ces structures de données comprennent des tableaux, des listes chaînées, des piles, des files d'attente et des ensembles, chacun fournissant un ensemble spécifique de méthodes et de propriétés pour manipuler les données. Tableaux En PHP, un tableau est une collection ordonnée qui stocke une séquence d'éléments. La classe de tableau SPL fournit des fonctions améliorées pour les tableaux PHP natifs, notamment le tri, le filtrage et le mappage. Voici un exemple d'utilisation de la classe array SPL : useSplArrayObject;$array=newArrayObject(["foo","bar","baz"]);$array

Apprenez en profondeur les secrets des structures de données du langage Go Apprenez en profondeur les secrets des structures de données du langage Go Mar 29, 2024 pm 12:42 PM

Une étude approfondie des mystères de la structure des données du langage Go nécessite des exemples de code spécifiques. En tant que langage de programmation concis et efficace, le langage Go montre également son charme unique dans le traitement des structures de données. La structure des données est un concept de base en informatique, qui vise à organiser et gérer les données afin qu'elles puissent être consultées et manipulées plus efficacement. En apprenant en profondeur les mystères de la structure des données du langage Go, nous pouvons mieux comprendre comment les données sont stockées et exploitées, améliorant ainsi l'efficacité de la programmation et la qualité du code. 1. Array Array est l'une des structures de données les plus simples