Häufig gestellte Fragen in Algorithmus-Interviews

1. Eine kurze Erklärung dessen, was ein Algorithmus ist

Ein Algorithmus ist ein genau definierter Rechenprozess, der einige Werte als Eingabe nimmt und einen entsprechenden Ausgabewert erzeugt. Einfach ausgedrückt handelt es sich um eine Folge von Rechenschritten, die eine Eingabe in eine Ausgabe umwandeln.

2. Was ist der Quick-Sort-Algorithmus?

Der Quicksort-Algorithmus ist in der Lage, eine Liste oder Abfrage schnell zu sortieren. Er basiert auf dem Split-Exchange-Sort-Prinzip, benötigt weniger Platz und teilt die zu sortierende Liste in drei Hauptteile:

  1. Elemente kleiner als Pivot
  2. Pivot-Element Pivot (ausgewählter Vergleichswert)
  3. Elemente größer als Pivot

3. Was ist der Bubble-Sort-Algorithmus?

Der Bubble-Sort-Algorithmus wird auch als Sinking-Sort bezeichnet. Bei dieser Art der Sortierung werden benachbarte Elemente der zu sortierenden Liste miteinander verglichen. Wenn sie in der falschen Reihenfolge sind, werden die Werte vertauscht und in die richtige Reihenfolge gebracht, bis das Endergebnis "Oberflächen" ist.

4. Welcher Symboltyp wird für die Zeitkomplexität verwendet?

Zu den Symboltypen, die für die Zeitkomplexität verwendet werden, gehören:

  1. Big Oh: Es bedeutet kleiner oder gleich dem Zielpolynom
  2. Großes Omega: Es bedeutet größer oder gleich dem Zielpolynom
  3. Big Theta: Es stellt die Gleichheit mit dem Zielpolynom dar
  4. Little Oh: Es bedeutet weniger als das Zielpolynom
  5. Kleines Omega: Es bedeutet größer als das Zielpolynom

5. Funktionsweise der binären Suche

Bestimmen Sie bei der binären Suche zuerst die mittlere Position des Arrays und vergleichen Sie dann den zu findenden Wert mit dem Wert an der mittleren Position des Arrays, wenn er kleiner als der mittlere Wert des Arrays ist, dem zu findenden Wert vor dem mittleren Wert stehen sollte usw. Grenzen Sie Ihre Suche kontinuierlich ein, bis Sie zum Endergebnis gelangen.

6. Ist es möglich, die Dichotomie-Methode zu verwenden, um die verknüpfte Liste abzurufen?

Da ein wahlfreier Zugriff in einer verknüpften Liste nicht akzeptabel ist, ist es unmöglich, das mittlere Element in O(1)-Zeit zu erreichen. Daher ist für verkettete Listen keine binäre Suche möglich (sie kann für sequentielle verkettete Listen oder sortierte verkettete Listen verwendet werden).

7. Was ist Heap-Sortierung?

Heap-Sortierung kann als Verbesserung der Auswahlsortierung angesehen werden, die als vergleichsbasierter Sortieralgorithmus definiert werden kann. Es unterteilt seine Eingabe in unsortierte und sortierte Bereiche, wobei der unsortierte Bereich verkleinert wird, indem das kleinste Element kontinuierlich eliminiert und in den sortierten Bereich verschoben wird.

8. Erklären Sie, was eine Skip-Liste ist

Skip-Liste Eine Methode zur Datenstrukturierung, die es Algorithmen ermöglicht, Elemente in Symboltabellen oder Wörterbüchern zu suchen, zu löschen und einzufügen. In einer Skip-Liste wird jedes Element durch einen Knoten dargestellt. Die Suchfunktion gibt den Inhalt des dem Schlüssel zugeordneten Werts zurück. Eine Einfügeoperation ordnet einen angegebenen Schlüssel einem neuen Wert zu, und eine Löschoperation entfernt einen angegebenen Schlüssel.

Neuns, wie groß ist die Raumkomplexität des Einfügungssortieralgorithmus

Insertion Sort ist ein In-Place-Sortieralgorithmus, benötigt also keinen zusätzlichen oder nur geringen Speicherplatz. Für die Einfügungssortierung muss nur ein einzelnes Listenelement außerhalb der Anfangsdaten gespeichert werden, wodurch die Raumkomplexität O (1) wird.

10. Was sind „Hash-Algorithmen“ und wofür werden sie verwendet?

Ein "Hash-Algorithmus" ist eine Hash-Funktion, die eine Zeichenfolge beliebiger Länge auf eine eindeutige Zeichenfolge fester Länge reduziert. Es wird in kryptografischer Gültigkeit, Nachrichten- und Datenintegrität und vielen anderen kryptografischen Systemen verwendet.

11. So finden Sie heraus, ob es einen Zyklus in der verknüpften Liste gibt

Um zu wissen, ob die verknüpfte Liste einen Zyklus hat, wird die Methode von zwei Zeigern verwendet. Wenn Sie zwei Zeiger behalten und nach der Verarbeitung von zwei Knoten einen erhöhen und nach der Verarbeitung jedes Knotens eine Situation auftreten, in der der Zeiger auf denselben Knoten zeigt, geschieht dies nur, wenn die verknüpfte Liste einen Zyklus hat.

12. Erklären Sie, wie Verschlüsselungsalgorithmen funktionieren

Verschlüsselung ist der Prozess der Umwandlung von Klartext in ein kryptografisches Format namens „Chiffretext“. Um Text umzuwandeln, verwenden Algorithmen eine Reihe von Bits, die als „Schlüssel“ bezeichnet werden, um Berechnungen durchzuführen. Je größer der Schlüssel, desto größer die Anzahl möglicher Muster zum Erstellen des Geheimtextes. Die meisten Verschlüsselungsalgorithmen verwenden feste Eingabeblocklängen von ungefähr 64 bis 128 Bit, während einige Streaming-Methoden verwenden.

Dreizehn, listen Sie einige häufig verwendete Verschlüsselungsalgorithmen auf

  • 3-Wege
  • Kugelfisch
  • GIESSEN
  • RGW
  • GOST
  • DES und Triple-DES
  • IDEE
  • LOK usw.

14. Was ist der Unterschied zwischen dem besten und dem schlechtesten Fall eines Algorithmus?

  1. Best Case: Der Best Case eines Algorithmus wird als die Anordnung von Daten interpretiert, bei der der Algorithmus am besten funktioniert. B. binäre Suche, wenn sich der Zielwert in dem durchsuchten Rechenzentrum befindet, dann ist dies der beste Fall, die zeitliche Komplexität des besten Falls ist 0.
  2. Worst Case: Die schlechteste Eingabereferenz für einen bestimmten Algorithmus. Wenn Sie beispielsweise das größte oder kleinste Element der Unterliste des Schlüsselwerts auswählen, führt dies zum Beispiel beim schnellen Sortieren zum schlimmsten Fall, wodurch die Zeitkomplexität schnell auf O (n ^ 2) abfällt.

15. Was ist der Radix-Sortieralgorithmus?

Die Radix-Sortierung, auch bekannt als "Bucket-Methode", sortiert Elemente, indem sie Zahlen vergleicht und sie verschiedenen "Buckets" zuordnet. Es ist einer der linearen Sortieralgorithmen.

16. Was ist ein rekursiver Algorithmus?

Ein rekursiver Algorithmus ist eine Methode zur Lösung komplexer Probleme, indem das Problem in kleinere Teilprobleme zerlegt wird, bis die Zerlegung klein genug ist, dass das Problem leicht gelöst werden kann. Normalerweise handelt es sich um eine Funktion, die sich selbst aufruft.

17. Drei Gesetze, denen rekursive Algorithmen folgen müssen

  1. Ein rekursiver Algorithmus muss einen Basispunkt haben
  2. Der rekursive Algorithmus muss einen Zustandsänderungsprozess zum Basispunkt haben
  3. Der rekursive Algorithmus muss sich selbst aufrufen

Supongo que te gusta

Origin blog.csdn.net/ChineseSoftware/article/details/125337121
Recomendado
Clasificación