Im Grunde brauche ich Hilfe bei der Anpassung meines binären Suchalgorithmus, um mit meiner String-Liste zu arbeiten, wie unten gezeigt. Hinweis, ich muss einen geschriebenen binären Suchalgorithmus verwenden, keine Verwendung von eingebauten C# -Funktionen wie .BinarySearch.C# - Binärsuchalgorithmus für benutzerdefinierte Klassen-String-Liste
Ich werde nun zeigen, wie Sie die Liste formatiert ist und die Liste selbst:
// This class formats the list, might be useful to know
public class Demo
{
public string Col;
public string S1;
public string S2;
public string S3;
public override string ToString()
{
return string.Format("Col: {0}, S1: {1}, S2: {2}, S3: {3}", Col, S1, S2, S3);
}
}
// The list itself
var list = new List<Demo>
{
new Demo {Col = "Blue", S1 ="88", S2 ="Yes"},
new Demo {Col = "Green", S1 ="43", S2 ="Yes"},
new Demo {Col = "Red", S1 ="216", S2 ="No"},
new Demo {Col = "Yellow", S1 ="100", S2 ="No"}
};
Die Liste bereits in alphabetischer Reihenfolge des ‚Col‘ String-Werte sortiert, also warum Blau ist erste und Gelb ist letzte. Der 'Col' ist der Teil der Liste, der durchsucht werden soll. Im Folgenden habe ich meine aktuelle Binärsuche eingefügt, die Int-Arrays durchsuchen kann.
public static int BinarySearch_R(int key, int[] array, int low, int high)
{
if (low > high) return -1;
int mid = (low + high)/2;
if (key == array[mid])
{
return mid;
}
if (key < array[mid]) {
return BinarySearch_R(key, array, low, mid - 1);
} else {
return BinarySearch_R(key, array, mid + 1, high);
}
}
Ich brauche Hilfe bei der Anpassung meines BinarySearch-Algorithmus, um für die obige Liste zu arbeiten. Wenn ihr Fragen habt oder mehr von meinem Code sehen wollt, fragt einfach.
Duplizieren: http://stackoverflow.com/questions/36663070/c-sharp-binary-search-string-list#comment60918731_36663070 – jdweng
Und wieder: http://stackoverflow.com/questions/36663070/c -sharp-binary-search-string-list –
@jdweng Ich habe eine etwas andere Frage gestellt. Nein, versuchen zu argumentieren, einfach sagen :) – TF7