Binärsökning string c#
Hej! Jag läser programmering 1 och är nybörjare på C#. Har fått en uppgift där jag ska skriva kod för bubbelsortering av siffror och bokstäver samt binärsökning av siffror och bokstäver. Nu har jag klarat av allt förutom den binärasökningen av bokstäver.. har kört fast och behöver hjälp av någon kunnig så jag kan klara uppgiften och kunna implementera detta sedan när jag jobbar med examinationsuppgiften. Detta krävs att kunna för högre betyg i kursen men förklaringen finns inte i kursboken.. Därför hoppas jag verkligen att någon kan hjälpa till..
Det här är bara en del av koden, just för den binära sökningen. Jag förstår att för att jämföra användarens önskade förstabokstav med orden i listan ska jag jämföra key==ordLista[mellan][0] men efter flera dagars försök och googlesökandet har jag stirrat mig blind och kommer ingenvart. Så sista hoppet är att någon av er vill och kan hjälpa mig..
Tack så hemskt mycket på förhand!!
case 6: // Här ska användaren kunna söka på första bokstaven av våra nonsensord i ordLista. (BINÄRSÖKNING AV BOKSTÄVER)
Console.Clear();
if (ordLista.Count > 0)
{
if (bokstavSortering)
{
Console.WriteLine("\n\tVilken bokstav ska sökningen börja på?");
string key = Console.ReadLine(); ; // Tar emot användarens sökning
if (key.Length <= 0) key = "a"; // Ser till att sökningen alltid är något, i det här fallet "a"
/*
* BINÄRSÖKNING med bokstäver
*
* Utifrån de nya verktyg vi har gått igenom tidigare (CompareTo och att plocka ut enstaka char från strängar för jämförelser) så
* ska vi här skriva en binärsökning för att leta efter bokstäver.
*
*/
int första = 0;
int sista = ordLista.Count - 1;
while (första <= sista)
{
int mellan = (första + sista) / 2;
if (ordLista[mellan].CompareTo(key) < 0)
{
första = mellan + 1;
}
else if (ordLista[mellan].CompareTo(key) >0)
{
sista = mellan - 1;
}
else
{
Console.WriteLine("Ordet du sökt efter som börjar med bokstav" + key + " finns på plats " + ordLista[mellan]);
break;
}
}
if (första > sista)
Console.WriteLine("Sökningen lyckades inte!");
BokstavUtskrift(ordLista); // Skriver ut hela listan med vår metod.