Also habe ich beschlossen, einen Algorithmus mit einer linearen und binären Suche zu erstellen, bei dem man ein 2D-Array wie Array [,] = {{5,2}, {0,3}, {1,2}, {3,2}} hat und das bestimmte Unterarray findet, zum Beispiel wie {5,2}. Ich habe mir die Hilfe von Copilot ausgedacht, um einfach die Punkte zu vergleichen, um das Array zu ordnen, und es dann wie eine binäre Suche durchzugehen, um den spezifischen Index zu finden. Es ist in C# geschrieben und ich habe das Gefühl, dass es bei zukünftigen Projekten zu langsam sein wird. Beachten Sie, dass ich nicht so viel Erfahrung mit dieser Sprache oder Algorithmen habe und viele Wörter oder Konzepte schwer verständlich finde.
Hier ist der Code:
Also habe ich beschlossen, einen Algorithmus mit einer linearen und binären Suche zu erstellen, bei dem man ein 2D-Array wie Array [,] = {{5,2}, {0,3}, {1,2}, {3,2}} hat und das bestimmte Unterarray findet, zum Beispiel wie {5,2}. Ich habe mir die Hilfe von Copilot ausgedacht, um einfach die Punkte zu vergleichen, um das Array zu ordnen, und es dann wie eine binäre Suche durchzugehen, um den spezifischen Index zu finden. Es ist in C# geschrieben und ich habe das Gefühl, dass es bei zukünftigen Projekten zu langsam sein wird. Beachten Sie, dass ich nicht so viel Erfahrung mit dieser Sprache oder Algorithmen habe und viele Wörter oder Konzepte schwer verständlich finde. Hier ist der Code: [code]using System;
public class HelloWorld { static int CompareVectors(int[] A, int[] B) { if(A[0] > B[0]) return 1; if(A[0] < B[0]) return -1; if(A[1] > B[1]) return 1; if(A[1] < B[1]) return -1; return 0; } static int DoubleBinarySearch(int[,] arr, int[] target) { int low = 0; int high = arr.GetLength(0); int mid = 0; int cmp = 0; while (high >= low) { mid = (high + low) / 2; int[] point1 = {arr[mid, 0],arr[mid, 1]}; cmp = CompareVectors(point1, target); // equal if (cmp == 0) { return mid; } // check right side (less than) if (cmp < 0) { low = mid + 1; } //check left side (greater than) if (cmp > 0) { high = mid - 1; } } return -1; } public static void Main() { int[,] points = {{0,5},{0,4},{0,2},{0,3},{1,2},{3,2},{2,3}}; int[] target = {1,2}; int y = DoubleBinarySearch(points, target); Console.WriteLine($"Point is found at index {y}");
Ich simuliere derzeit Penneys Spiel und berechnet die Gewinn-/Verlustwahrscheinlichkeit für 1.000.000 Decks. Mein Code läuft ~ 10 Minuten, aber ich möchte, dass er viel schneller läuft. Ich speichere...
Ich habe versucht, eine Automatisierung zu erstellen, bei der die Verwendung mehrerer Potenzpunkte in einem Lauf erstellt wurde. Ich habe bereits mehrere PPTX basierend auf der für Loops erstellt,...
Ich habe versucht, eine Automatisierung zu erstellen, bei der die Verwendung mehrerer Potenzpunkte in einem Lauf erstellt wurde. Ich habe bereits mehrere PPTX basierend auf der für Loops erstellt,...
Die aktuelle Implementierung dauert durchschnittlich 10-15 ms, um jedes Mal zu ausgeführt, wenn sie aufgerufen wird (mit der Stoppuhrklasse vor /nach dem Anruf zeitlich abgestimmt. Sie wird...