Die Methode des Selbststudiums der Datenstruktur: Zuerst werden Sie in der ersten Phase die Datenstruktur verstehen und ihre grundlegende Zusammensetzung und Leistung verstehen, dann werden Sie in der zweiten Phase tief in die Datenstruktur eintauchen und sie beherrschen relevante Funktionen und die Fähigkeit, Code zu schreiben; und schließlich werden Sie in der dritten Stufe die Datenstruktur abrufen und das erlernte Wissen auf praktische Probleme anwenden.
So lernen Sie die Datenstruktur selbst:
Der erste Schritt: Verstehen Sie die Datenstruktur
Der erste Schritt: Um es zu lernen, sollten Sie Arrays, verknüpfte Listen, Stapel usw. kennen. Warteschlangen, Hash-Tabellen, Sprünge Wofür werden die 10 Datenstrukturen von Tabellen, Diagrammen, Bäumen, Heaps und Wörterbuchbäumen verwendet, warum und wie man sie macht? Xiaolu empfiehlt, einige grundlegende Datenstrukturbücher zu lesen oder Baidu und Google kurz zu verwenden Verstehen Sie, wofür jede Datenstruktur verwendet wird und warum, tun Sie einfach, was Sie wollen, und machen Sie sich dann einfach Notizen und bloggen Sie.
Zweiter Schritt: Jede Datenstruktur hat ihre Vor- und Nachteile und ihre Leistung. Welche Standards verwenden wir also, um die Leistung von Datenstrukturen und Algorithmen zu messen? Der zweite Schritt besteht darin, den Inhalt der Komplexitätsanalyse in Bezug auf Zeitkomplexität und Raumkomplexität zu erlernen. Dieser Teil des Inhalts ist sehr wichtig, da die zu erlernenden Datenstrukturen und Algorithmen einen Leistungsstandard haben müssen Bei der differenzierten Problemlösung werden Datenstrukturen und Algorithmen mit der besten Leistung ausgewählt.
Die zweite Stufe: Tief in die Datenstruktur eintauchen
Der erste Schritt: Code schreiben. Die zehn grundlegendsten Datenstruktur-bezogenen Merkmale und Nutzungsbedingungen wurden oben aufgeführt. Anschließend werden wir von Anfang an eine eingehende Untersuchung jeder Datenstruktur durchführen. Zunächst werden die an der Datenstruktur beteiligten Vorgänge wie Hinzufügen, Löschen und Ändern erläutert , Überprüfung und andere Vorgänge sind erforderlich. Implementieren Sie es selbst und führen Sie es auf dem Computer aus. Beim Schreiben von Code müssen Sie die folgenden Punkte beachten: Randbedingungen, Zeiger und Codespezifikationen.
Dadurch werden Sie noch mehr Ehrfurcht vor dem Code haben. Sie sollten ihn jedes Mal ernst nehmen, wenn Sie den Code auf der Maschine schreiben, indem Sie ihn selbst mit einem Stift auf Ihr Notizbuch schreiben , was für Sie von Vorteil sein wird.
Schritt 2: In der ersten Phase haben wir uns mit den Standards zur Leistungsmessung vertraut gemacht. Der nächste Schritt besteht darin, zurückzugehen und eine Leistungsanalyse für die Vorgänge durchzuführen, die an den 10 am häufigsten verwendeten Datenstrukturen beteiligt sind. Sie fragen sich vielleicht: Warum nicht beim Schreiben von Code eine Leistungsanalyse durchführen? Ich denke, der Vorteil von Phasen besteht darin, dass wir uns auf die Lösung von Code konzentrieren können, indem wir die Denk- und Logikfähigkeiten des Codeschreibens trainieren. Lassen Sie uns nach Abschluss der Leistungsanalyse einen Blick darauf werfen der zuvor geschriebene Code, der verbessert werden kann. Während dieser Zeit werden Sie auf verschiedene Probleme stoßen. Normalerweise gehe ich zu Baidu oder Google, um sie mithilfe der von anderen verfassten Artikel zusammenzufassen und in meinem Notizbuch aufzuzeichnen.
Schritt 3: Nachdem die Leistungsanalyse jeder Datenstruktur abgeschlossen ist, fahren Sie mit der detaillierten Analyse aller Daten fort. Was ich in der ersten Phase empfehle, ist die Lektüre einiger grundlegender Bücher, die kein tiefes Wissen erfordern. Aber wir benötigen immer noch mindestens ein Datenstrukturbuch mit maßgeblicher und tiefgehender Analyse, um ein tiefgreifendes Verständnis einiger Konzepte zu erlangen. Schließlich sollen grundlegende Bücher Ihnen den Einstieg erleichtern. Mithilfe dieser maßgeblichen und umfassenden Inhalte können wir nach Lücken in den von uns erlernten Datenstruktur-Wissenspunkten suchen.
Schritt 4: Was tun, wenn vertieftes Lernen allein wirklich langweilig und kompliziert ist? Analysieren wir Beispiele aus der Praxis, wie z. B. Zahlen-Ratespiele, 0/1-Rucksack-Problem, Labyrinthwandern, Acht-Damen-Problem und vollständige Probleme mit Bestellreduzierung usw. Beispielsweise können wir in einem Zahlen-Ratespiel darüber nachdenken, wie wir in kürzester Zeit die richtige Zahl erraten. Vielleicht denken Sie auch an die Verwendung einer binären Suche. Okay, fragen wir uns die Probleme mit der binären Suche. Während dieses Prozesses müssen Sie sich fragen, warum nur so Ihr Wissensstand erweitert wird. Wenn es beispielsweise doppelte Daten in der binären Suche gibt, wie können Sie diese lösen?
Ich möchte dennoch betonen, dass Sie sich fragen müssen, warum, denn psychologisch gesehen folgt das menschliche Gehirn dem Prinzip des geringsten Widerstands, das heißt, die Dinge, an die Sie gerne denken, tun Sie am wenigsten, also hier haben wir es den Rückwärtsgang einlegen, um den Durchbruch fortzusetzen. Wenn Sie der Meinung sind, dass in den beiden oben genannten Phasen keine Probleme auftreten, fahren wir mit der dritten Phase fort, um die Datenstruktur abzurufen.
Die dritte Stufe: Datenstruktur abrufen
Schritt 1: Zu diesem Zeitpunkt haben Sie vielleicht viel über die Datenstruktur gelernt, aber es ist schwierig, sie anzuwenden. Wie können Sie sie also bei tatsächlichen praktischen Problemen anwenden? ? Haben wir die fragmentierten Wissenspunkte bereits in unseren Notizbüchern organisiert? Was ist als nächstes zu tun? Wir können Mindmaps verwenden, um Wissen systematisch zu organisieren, was uns dabei hilft, es weiter zu stärken, egal ob es sich um eine Überprüfung oder eine Konsolidierung handelt.
Zweiter Schritt: Nachdem Sie das oben Genannte in einem System organisiert haben, gehen Sie zu Google oder Baidu, um nach tatsächlichen Problemen mit klaren Lösungen zu suchen und diese für Analysen und Studien zu verwenden. Sie werden feststellen, dass viele Probleme mehrere Probleme mit sich bringen Das Datenstrukturproblem, das wir zuvor gelöst haben, betrifft nur eine einzelne Datenstruktur. Versuchen Sie dann, selbst Verbindungen zwischen Datenstrukturen wie Arrays und verknüpften Listen herzustellen Sie werden feststellen, dass die Vorteile einer Datenstruktur genau die Nachteile einer anderen Datenstruktur sind. Das Array ist im Speicherraum kontinuierlich und für den CPU-Cache geeignet, während die verknüpfte Liste ein fragmentierter Speicherplatz im Speicher ist und nicht für den CPU-Cache geeignet ist Die verknüpfte Liste kann jedoch dynamisch in den CPU-Cache verschoben werden. Eine Erweiterung ist für Arrays nicht möglich.
Ein weiteres Beispiel ist, dass wir zur Verbesserung der Effizienz des Programms eine andere Datenstruktur durch eine Datenstruktur ersetzen müssen, die mehr Speicherplatz verbraucht. Wenn der Speicher knapp ist und die Ausführungseffizienz nicht hoch ist, können wir Speicher sparen und die Ausführungseffizienz ist etwas geringer. Die Datenstruktur wird verwendet, um die Datenstruktur zu ersetzen, die viel Speicher beansprucht und schnell ausgeführt wird.
Schritt 3:Lernen Sie, tatsächliche Probleme in die erlernten Datenstrukturen umzuwandeln. Wie konvertiert man es? Beispiel: Wenn Sie Ingenieur wären, wie würden Sie das Problem der Optimierung des Algorithmus zum Zwischenspeichern verknüpfter Listen lösen? Lassen Sie uns zunächst die Frage in die Datenstruktur umwandeln, die wir gelernt haben. Jetzt wissen wir, dass es verknüpfte Listen gibt. Welche Operationen werden mithilfe verknüpfter Listen implementiert? Das Eliminieren von Daten, das Durchsuchen von Daten und das Zwischenspeichern von Daten erfordern alle das Durchsuchen der gesamten verknüpften Liste, und die Zeitkomplexität beträgt O (n).
Dann fragen wir uns, ob wir die Suche optimieren können? Finden Sie eine anwendbare Datenstruktur basierend auf den Merkmalen des Problems oder der Daten. Die drei Vorgänge des Caching umfassen das schnelle Einfügen, Löschen und Abfragen von Daten, die wir in unserem Gehirn schnell abrufen, löschen und abfragen können. Ausgewogene Binärbäume, Hash-Tabellen, Sprungtabellen usw. Wenn wir beispielsweise eine Hash-Tabelle auswählen, analysieren wir abschließend, ob die Zeitkomplexität stark optimiert wurde, andernfalls wechseln wir zur Leistungsanalyse zu einer anderen Datenstruktur.
Es ist für uns nicht schwer herauszufinden, dass das eigentliche Problem Schritt für Schritt in die grundlegende Operationsanalyse der von uns gelernten Datenstruktur zerlegt wird und dann die Vor- und Nachteile sowie die Leistungsanalyse der von uns gelernten Datenstruktur verwendet werden, um sie zu erhalten Die optimale Lösung Die tatsächlichen Probleme in Unternehmen sind jedoch häufig komplizierter als die tatsächlichen Probleme, die wir in der Praxis verwenden.
Verwandte Empfehlungen: Programmiervideokurse
Das obige ist der detaillierte Inhalt vonSo lernen Sie die Datenstruktur selbst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!