Articles of Algorithmus

Finden Sie alle Pfade zwischen zwei Grafikknoten

Ich arbeite an einer Implementierung des Dijkstras-Algorithmus, um den kürzesten Pfad zwischen verbundenen Knoten in einem Netzwerk von Routen abzurufen. Ich habe die Umsetzung funktioniert. Es gibt alle kürzesten Pfade zu allen Knoten zurück, wenn ich den Startknoten in den Algorithmus überlasse. Meine Frage: Wie geht man alle möglichen Wege von Knoten A zu Knoten […]

Implementieren Sie eine Warteschlange, in der push_rear (), pop_front () und get_min () alle konstante Zeitoperationen sind

Ich bin auf diese Frage gestoßen : Implementiere eine Warteschlange, in der push_rear (), pop_front () und get_min () alle konstante Zeitoperationen sind. Ich dachte anfangs über die Verwendung einer Min-Heap-Datenstruktur mit O (1) -Komplexität für eine get_min (). Aber push_rear () und pop_front () wären O (log (n)). Weiß jemand, was der beste Weg […]

Quicksort: Auswählen des Drehpunkts

Bei der Implementierung von Quicksort müssen Sie beispielsweise einen Pivot auswählen. Aber wenn ich einen Pseudocode wie den unten stehenden anschaue, ist nicht klar, wie ich den Drehpunkt wählen soll. Erstes Element der Liste? Etwas anderes? function quicksort(array) var list less, greater if length(array) ≤ 1 return array select and remove a pivot value pivot […]

Mindestens gemeinsames Vielfaches für 3 oder mehr Zahlen

Wie berechnen Sie das kleinste gemeinsame Vielfache von mehreren Zahlen? Bisher konnte ich nur zwischen zwei Zahlen rechnen. Aber habe keine Ahnung, wie man es ausdehnt, um 3 oder mehr Zahlen zu berechnen. So weit habe ich es gemacht LCM = num1 * num2 / gcd ( num1 , num2 ) Mit gcd ist die […]

Schnelle Permutation -> Anzahl -> Permutations-Mapping-Algorithmen

Ich habe n Elemente. Um ein Beispiel zu nennen, sagen wir 7 Elemente, 1234567. Ich weiß, dass es 7 gibt! = 5040 mögliche Permutationen dieser 7 Elemente. Ich möchte einen schnellen Algorithmus mit zwei functionen: f (Zahl) bildet eine Zahl zwischen 0 und 5039 zu einer eindeutigen Permutation ab, und f ‘(Permutation) bildet die Permutation […]

Wählen Sie k zufällige Elemente aus einer Liste, deren Elemente Gewichte haben

Die Auswahl ohne Gewichte (gleiche Wahrscheinlichkeiten) ist hier schön beschrieben. Ich habe mich gefragt, ob es einen Weg gibt, diesen Ansatz in einen gewichteten zu verwandeln. Ich bin auch an anderen Ansätzen interessiert. Update: Sampling ohne Ersatz

Löcher in 2D-Punktsets finden?

Ich habe 2d points . Sie sind X,Y coordinates auf einem kartesischen Standardrastersystem (in diesem Fall eine UTM zone ). Ich muss die Löcher in diesem Punktsatz finden, vorzugsweise mit einer gewissen Fähigkeit, die Empfindlichkeit des Algorithmus einzustellen, der diese Löcher findet. Typischerweise sind diese Punktmengen sehr dicht, aber manche können viel weniger dicht sein. […]

Algorithmus zur Bestimmung von Tic Tac Toe Game Over

Ich habe ein Spiel von Tic-Tac-Toe in Java geschrieben, und meine derzeitige Methode, das Ende des Spiels zu bestimmen, berücksichtigt die folgenden möglichen Szenarien für das Ende des Spiels: Das Board ist voll und es gibt noch keinen Gewinner: Das Spiel ist unentschieden. Kreuz hat gewonnen. Kreis hat gewonnen. Um dies zu tun, liest es […]

Erreiche Hierarchie, Eltern-Kind-Beziehung auf effektive und einfache Weise

Ich habe einen Tisch wie create table site ( site_Id int(5), parent_Id int(5), site_desc varchar2(100) ); Bedeutung der Felder: site_Id: ID der Websites parent_Id: Übergeordnete ID der Site site_desc: zwar nicht relevant für die Frage, aber es hat die Beschreibung der Website Die Voraussetzung ist, dass wenn ich eine site_id als Eingabe habe, und ich […]

Größter Primfaktor einer Zahl

Was ist der beste Ansatz, um den größten Primfaktor einer Zahl zu berechnen? Ich denke am effizientesten wäre folgendes: Finde die niedrigste Primzahl, die sich sauber teilt Überprüfen Sie, ob das Ergebnis der Division prim ist Wenn nicht, finde die nächstniedrigste Gehe zu 2. Ich gehe davon aus, dass es einfacher ist, die kleinen Primfaktoren […]