Articles of Algorithmus

Erstelle einen Hashcode mit zwei Zahlen

Ich versuche, eine schnelle Hashcode-function für eine komplexe Zahlenklasse (a + b) in C # zu erstellen. Ich habe wiederholt die a.GetHashcode()^b.GetHashCode() -Methode gesehen. Dies ergibt jedoch den gleichen Hashcode für (a,b) und (b,a) . Gibt es einen Standard-Algorithmus, um dies zu tun und gibt es irgendwelche functionen im .Net-Framework, um zu helfen?

Schaltjahr Berechnung

Um Schaltjahre zu finden, warum muss das Jahr durch 100 teilbar und durch 400 teilbar sein? Ich verstehe, warum es durch 4 teilbar sein muss. Bitte erläutern Sie den Algorithmus.

Zufällige gewichtete Wahl

Betrachten Sie die folgende class, die einen Broker darstellt: public class Broker { public string Name = string.Empty; public int Weight = 0; public Broker(string n, int w) { this.Name = n; this.Weight = w; } } Ich möchte zufällig einen Broker aus einem Array unter Berücksichtigung ihrer Gewichte auswählen. Was denkst du über den […]

Algorithmus zum Finden der kleinsten Potenz von zwei, die größer oder gleich einem gegebenen Wert ist

Ich muss die kleinste Potenz von zwei finden, die größer oder gleich einem gegebenen Wert ist. Bisher habe ich Folgendes: int value = 3221; // 3221 is just an example, could be any number int result = 1; while (result < value) result <<= 1; Es funktioniert gut, fühlt sich aber irgendwie naiv an. Gibt […]

function zum Erstellen von Farbrädern

Das ist etwas, das ich viele Male pseudo getriggers habe und für das ich nie eine Lösung gefunden habe. Das Problem besteht darin, einen Weg zu finden, N colors zu erzeugen, die so unterscheidbar wie möglich sind, wobei N ein Parameter ist.

Was ist ein guter Algorithmus, um zu bestimmen, ob eine Eingabe ein perfektes Quadrat ist?

Mögliche Duplikate: Der schnellste Weg, um festzustellen, ob die Wurzel einer ganzen Zahl eine ganze Zahl ist Wie kann man sehen, ob eine Zahl ein perfektes Quadrat ist ? bool IsPerfectSquare(long input) { // TODO } Ich benutze C #, aber das ist sprachunabhängig. Bonuspunkte für Klarheit und Einfachheit (dies ist kein Code-Golf). Edit: Das […]

Wo kann ich einen “nützlichen” C ++ – Binärsuchalgorithmus bekommen?

Ich brauche einen binären Suchalgorithmus, der mit den C ++ – STL-Containern kompatibel ist, etwa std::binary_search im -Header der Standardbibliothek, aber ich brauche ihn, um den Iterator zurückzugeben, der auf das Ergebnis zeigt, nicht ein einfacher Boolescher wenn das Element existiert. (Nebenbei bemerkt, was zur Hölle hat das Standard-Committee gedacht, als sie die API für […]

Gibt es bessere Methoden für die Permutation von Strings?

void permute(string elems, int mid, int end) { static int count; if (mid == end) { cout << ++count << " : " << elems << endl; return ; } else { for (int i = mid; i <= end; i++) { swap(elems, mid, i); permute(elems, mid + 1, end); swap(elems, mid, i); } } […]

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?