Mindmap-Galerie Datenstruktur
Datenstruktur-Mindmap, wie zum Beispiel ein Datentyp, ist eine Sammlung von Werten und eine Reihe von Operationen, die für diese Sammlung definiert sind. Ich habe sie mir zu Beginn noch nicht vollständig eingeprägt, also werfen wir einen Blick darauf.
Bearbeitet um 2023-07-20 22:03:53Welche Preismethoden gibt es für Projektunteraufträge im Rahmen des EPC-Generalvertragsmodells? EPC (Engineering, Procurement, Construction) bedeutet, dass der Generalunternehmer für den gesamten Prozess der Planung, Beschaffung, Konstruktion und Installation des Projekts verantwortlich ist und für die Testbetriebsdienste verantwortlich ist.
Die Wissenspunkte, die Java-Ingenieure in jeder Phase beherrschen müssen, werden ausführlich vorgestellt und das Wissen ist umfassend. Ich hoffe, es kann für alle hilfreich sein.
Das Software-Anforderungs-Engineering ist ein Schlüsselkapitel für Systemanalytiker. Zu den Kapiteln „Anforderungserhebung“ und „Anforderungsanalyse“ gehören häufig Veröffentlichungen.
Welche Preismethoden gibt es für Projektunteraufträge im Rahmen des EPC-Generalvertragsmodells? EPC (Engineering, Procurement, Construction) bedeutet, dass der Generalunternehmer für den gesamten Prozess der Planung, Beschaffung, Konstruktion und Installation des Projekts verantwortlich ist und für die Testbetriebsdienste verantwortlich ist.
Die Wissenspunkte, die Java-Ingenieure in jeder Phase beherrschen müssen, werden ausführlich vorgestellt und das Wissen ist umfassend. Ich hoffe, es kann für alle hilfreich sein.
Das Software-Anforderungs-Engineering ist ein Schlüsselkapitel für Systemanalytiker. Zu den Kapiteln „Anforderungserhebung“ und „Anforderungsanalyse“ gehören häufig Veröffentlichungen.
Datenstruktur
Einführung
Datenstruktur
Basiskonzept
Daten
Datenelement, Datenelement
Datenobjekte, Datenstrukturen
Datentypen, abstrakte Datentypen
Art der Daten
Eine Sammlung von Werten und eine Reihe von Operationen, die für diese Sammlung definiert sind.
Atomtyp
Sein Wert kann nicht weiter unterteilt werden: bool, int usw.
Strukturtyp
Ein Datentyp, dessen Wert in Komponenten zerlegt werden kann: struct
Abstrakter Datentyp (ADT)
Abstrakte Datenorganisation und damit verbundene Operationen
Drei Elemente
logische Struktur
lineare Struktur
Eins zu eins
nichtlineare Struktur
Struktur festlegen
Baumstruktur
eins zu viele
Diagrammstruktur
viel zu viel
Datenoperationen
Definieren Sie grundlegende Vorgänge basierend auf der logischen Struktur und den tatsächlichen Anforderungen
Hinzufügen, löschen, ändern, prüfen
Definieren Sie eine Datenstruktur (definieren Sie ein ADT)
Physische Struktur (Lagerstruktur)
sequentielle Speicherung
Kettenspeicher
Indexspeicher
Hash-Speicher (Hash-Speicher)
Nicht sequentielle Speicherung (diskrete Speicherung)
Implementieren Sie eine Datenstruktur (bestimmen Sie die Speicherstruktur von ADT).
Algorithmus
Algorithmusdefinition
Eine Beschreibung (eine endliche Folge von Anweisungen) der Schritte zur Lösung eines bestimmten Problems
Wichtige Funktionen
Endlichkeit
Der Algorithmus muss endlich sein, aber das Programm kann unendlich sein
Sicherheit
Die gleiche Eingabe kann nur die gleiche Ausgabe erzeugen
Durchführbarkeit
Wird durch eine endliche Anzahl grundlegender Operationen implementiert
eingeben
Keine oder mehr Eingaben
Ausgabe
einen oder mehrere Ausgänge
Eigenschaften eines „guten“ Algorithmus
Richtigkeit
Lesbarkeit
Kommentar
Robustheit
Reagieren Sie auf illegale Daten
Hohe Effizienz und geringer Lagerbedarf
Zeitkomplexität und Raumkomplexität
Maß der Effizienz
Zeitkomplexität
Analysieren Sie die zeitliche Komplexität eines Programms
Additionsregel
Beim Hinzufügen mehrerer Terme wird nur der Term höchster Ordnung beibehalten und der Koeffizient wird 1
T(n)=T₁(n)+T₂(n)=O(f(n))+O(g(n))=O(max(f(n),g(n)))
Multiplikationsregel
Mehrfachmultiplikationen bleiben erhalten
T(n)=T₁(n)×T₂(n)=O(f(n))×O(g(n))=O(f(n)×g(n))
Gemeinsame Größenordnungen der Zeitkomplexität
(bezieht sich oft auf die Machtordnung)
Lösung: Betrachten Sie nur die Beziehung zwischen der Anzahl der Schleifen in der tiefsten Schleife und n
Schlimmste Zeitkomplexität
durchschnittliche Zeitkomplexität
Berücksichtigen Sie bei der Bewertung von Algorithmen nur diese beiden
Beste Zeitkomplexität
Raumkomplexität
Es ist definiert als der von diesem Algorithmus verbrauchte Speicherplatz, der eine Funktion der Problemgröße n ist, S(n)=O(g(n))
Algorithmen funktionieren
Der vom Algorithmus benötigte Speicherplatz ist konstant, S(n)=O(1)
Berechnung
Gewöhnliches Programm
Finden Sie Variablen, die sich auf die Größe des belegten Platzes und die Größe des Problems beziehen
Analysieren Sie die Beziehung zwischen dem belegten Raum x und der Problemgröße n: x=f(n)
Die Größenordnung O(x) von x ist die Komplexität des Algorithmusraums S(n)
rekursives Programm
Finden Sie die Beziehung zwischen der Tiefe des rekursiven Aufrufs x und der Problemgröße n: x=f(n)
Die Größenordnung O(x) von x ist die Komplexität des Algorithmusraums S(n)
Hinweis: Der für Funktionen erforderliche Speicherplatz ist auf jeder Ebene des Algorithmus unterschiedlich. Wenn die oben genannten Regeln nicht erfüllt sind, ist eine zusätzliche Analyse erforderlich.
lineare Datenstruktur
linearer Tisch
logische Struktur
Definition einer linearen Tabelle
Gleicher Datentyp, endliche Folge
Tabellenlänge, leere Tabelle
Tabellenkopf, Tabellenfuß
Vorläufer, Nachfolger
Befehl
Die Bitreihenfolge beginnt bei 1, der Array-Index beginnt bei 0
Grundlegende Operationen linearer Tabellen
Initialisierungstabelle
InitList(&L)
Operation zerstören
&DestroyList(&L)
Einfügevorgang
ListInsert(&L,i,e)
Vorgang löschen
ListDelete(&L,i,&e)
Nach Wert suchen
LocateElem(&L,e)
Bitweise Suche
GetElem(&L,i)
Andere häufige Operationen
Fragen Sie nach der Tischlänge
Länge (L)
Ausgabeoperationen
Druckliste(L)
kurze Bedienung
Leer (L)
Beachten: ①Betrieb von Daten (Speichermodus) -> Erstellung, Zerstörung, Hinzufügung, Löschung, Änderung und Suche; ②Die Benennung muss lesbar sein; ③Die Änderungsergebnisse der Parameter müssen „zurückgebracht“ werden und die Referenz „&“ der Parameter muss übergeben werden
Implementierung einer linearen Tabelle
Speicherstruktur (physikalische Struktur)
Sequenztabelle (sequentielle Speicherung)
Definition
Logisch und physisch angrenzend
sizeof(ElemType): Ermittelt die Größe eines Datenelements
erreichen
statische Zuordnung
Es sind noch „schmutzige Daten“ im Speicher vorhanden; beim Initialisieren der Sequenztabelle muss die Länge auf 0 gesetzt werden
dynamische Zuordnung
Die Sprache C beantragt dynamisch Speicherplatz und gibt ihn frei
Die Header-Datei, in der sich die malloc- und free-Funktionen befinden: #include<stdlib.h>
Malloc-Funktion
L.data=(ElemType *)malloc(sizeof(ElemType)*InitSize);
Der Datenzeiger zeigt auf die Startadresse eines gesamten zugewiesenen kontinuierlichen Speicherplatzes.
kostenlose Funktion
free(ElemType *p)
C beantragt dynamisch Speicherplatz und gibt ihn frei
neu
L.data=new ElemType(InitSize);
löschen
Merkmale
① Direkter Zugriff
Kann das i-te Element in O(1)-Zeit finden
②Hohe Speicherdichte
Jeder Knoten speichert nur Datenelemente
③Es ist unpraktisch, die Kapazität zu erweitern
④ Einfüge- und Löschvorgänge sind umständlich
Es müssen viele Elemente verschoben werden
Grundoperationen
Achten Sie auf die Beziehung zwischen Bitreihenfolge und Array-Indizes
einfügen
Zeitkomplexität
Bester Fall: am Ende der Tabelle einfügen
Beste Zeitkomplexität = O(1)
Im schlimmsten Fall: In den Header einstecken
Schlechteste Zeitkomplexität = O(n)
durchschnittliche Situation
löschen
[Galerie: Vorgang einfügen]
Zeitkomplexität
Finden
Bitweise Suche
[Galerie: Suche nach Bit]
Zeitkomplexität: O(1)
Nach Wert suchen
In der C-Sprache kann der Strukturvergleich „==“ nicht direkt verwenden.
[Galerie: Suche nach Wert]
Zeitkomplexität
Verknüpfte Liste (verknüpfter Speicher)
nichtlineare Datenstrukturen