Articles of Algorithmus

Stack mit find-min / find-max effizienter als O (n)?

Ich bin daran interessiert, eine Java-Datenstruktur ähnlich einem Stack zu erstellen, der die folgenden Operationen so effizient wie möglich unterstützt: Push, der ein neues Element auf dem Stapel hinzufügt, Pop, der das oberste Element des Stapels entfernt, Find-Max, das das größte Element des Stapels zurückgibt (aber nicht entfernt) und Find-Min, das das kleinste Element des […]

Warum verwendet die Methode “Arrays.sort” von Java zwei unterschiedliche Sortieralgorithmen für verschiedene Typen?

Die Methode ” Arrays.sort Java 6 verwendet Quicksort für Arrays von Primitiven und Arrays.sort die Sortierung nach Arrays von Objekten. Ich glaube, Quicksort ist meistens schneller als merge sort und kostet weniger Speicher. Meine Experimente unterstützen das, obwohl beide Algorithmen O (n log (n)) sind. Warum werden unterschiedliche Algorithmen für verschiedene Typen verwendet?

Submatrix mit maximaler Summe erhalten?

Eingabe : Ein 2-dimensionales Array NxN – Matrix – mit positiven und negativen Elementen. Ausgabe : Eine Submatrix von beliebiger Größe, so dass ihre Summe das Maximum unter allen möglichen Submatrizen ist. Anforderung : Algorithmuskomplexität von O (N ^ 3) Geschichte: Mit Hilfe des Algorithmus, Larry und einer Modifikation von Kadanes Algorithmus konnte ich das […]

Rolling Median Algorithmus in C

Ich arbeite gerade an einem Algorithmus zur Implementierung eines Rolling-Median-Filters (analog zu einem Rolling-Mean-Filter) in C. Aus meiner Literaturrecherche ergeben sich zwei recht effiziente Wege, dies zu tun. Die erste besteht darin, das anfängliche Wertefenster zu sortieren und dann eine binäre Suche durchzuführen, um den neuen Wert einzufügen und den vorhandenen Wert bei jeder Iteration […]

Floating Point Divider Hardware Implementierungsdetails

Ich versuche, einen 32-Bit-Gleitkomma-Hardware-Teiler in Hardware zu implementieren, und ich frage mich, ob ich irgendwelche Vorschläge hinsichtlich einiger Kompromisse zwischen verschiedenen Algorithmen bekommen kann? Meine Gleitkommaeinheit unterstützt momentan Multiplikation und Addition / Subtraktion, aber ich werde sie nicht auf eine FMA-Gleitkommaarchitektur umstellen, da dies eine eingebettete Plattform ist, in der ich versuche, die Flächennutzung zu […]

Programmiertheorie: Löse ein Labyrinth

Was sind die möglichen Wege, ein Labyrinth zu lösen? Ich habe zwei Ideen, aber ich denke, sie sind nicht sehr elegant. Basissituation: Wir haben eine Matrix, und die Elemente in dieser Matrix sind so geordnet, dass sie ein Labyrinth darstellen, mit einem Weg hinein und einem heraus. Meine erste Idee war, einen Roboter durch das […]

Erstellen einer Logarithmusfunktion in C ohne Verwendung des Float-Typs

Ich muss die Log-function (Basis 2 oder Basis 10 egal welche) ohne float Typ neu schreiben, aber ich muss die Genauigkeit von wenigen Dezimalstellen nach dem Komma erhalten. (Wie ein float * 100 , um 2 Dezimalstellen innerhalb des Integer-Typs zu erhalten, zB: wenn das Ergebnis 1.4352 das Ergebnis wäre, sollte meine function etwas wie […]

Kann min / max des bewegten Fensters in O (N) erreichen?

Ich habe das Array A eingegeben A[0], A[1], … , A[N-1] Ich möchte die function Max (T, A), die B zurückgibt, repräsentieren den Maximalwert auf A über dem vorherigen bewegten Fenster der Größe T wo B[i+T] = Max(A[i], A[i+T]) Durch die Verwendung von max heap, um den Maximalwert der aktuellen sich bewegenden Fenster A [i] […]

Wie bekomme ich eine Quadratwurzel für die 32-Bit-Eingabe in nur einem Taktzyklus?

Ich möchte ein synthetisierbares Modul in Verilog entcasting, das nur einen Zyklus benötigt, um die Quadratwurzel der gegebenen Eingabe von 32 Bit zu berechnen.

Wie kann ich den von BFS gefundenen Pfad finden?

Das Problem, das ich versuche zu lösen, betrifft einen Baum des MRT-Systems. Jeder Knoten kann maximal mit 4 Punkten verbunden werden, was die Sache sehr vereinfacht. Hier ist mein Gedanke. struct stop { int path, id; stop* a; stop* b; stop* c; stop* d; }; Ich kann Code schreiben, um alle Informationen zu speichern, die […]