Wie optimiere ich meinen 2D Array Point Searcher?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie optimiere ich meinen 2D Array Point Searcher?

Post by Anonymous »

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: Select all

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}");

}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post