C# Bubblesort für 2D Array?

2 Antworten

Also als Entwickler solltest du dich ausdrücken können und zwar "eineindeutig".

Bei einem Array arr[x][y] wobei von jedem arr[x] der erste Wert das Sortierkritierium ist also arr[x][0]

int n = arr.Length; 
// Für den Sortiervorgang eigentlich nicht notwendig 
// aber du wolltest ja das A wegschneiden
for(int i = 0; i < n - 1; i++) 
{ 
  arr[i][0] = arr[i][0].SubString(1);
}
// Bubblesort
for(int i = 0; i < n - 1; i++) 
{            
  for(int j = 0; j < n - i - 1; j++) 
  {             
    if(arr[j][0] > arr[j + 1][0]) 
    {               
      var temp = arr[j];             
      arr[j] = arr[j + 1];                    
      arr[j + 1] = temp;                 
    } 
  }
} 
Woher ich das weiß:Berufserfahrung – Senior-Softwaredeveloper mit 20 Jahren Berufserfahrung.

poposalat 
Beitragsersteller
 22.04.2020, 16:27

Das A dachte ich zu entfernen macht es einfacher zu sortieren ich habe es jetzt so jedoch kommen mehrere Fehler :C

static string[,] EinkaufSortieren(string[,] sArrEinkauf, int temp)
            {
                for (int i = 0; i < sArrEinkauf.GetLength(0); i++)
                {
                    sArrEinkauf[i,0] = sArrEinkauf[i, 0].TrimStart('A');
                }


                for (int x = 0; x < sArrEinkauf.Length - 1; x++)
                {
                    for (int s = 0; s < sArrEinkauf.Length -x - 1; s++)
                    {
                        if (sArrEinkauf[s][0] > sArrEinkauf[s + 1][0])
                        {
                            temp = sArrEinkauf[s];
                            sArrEinkauf[s] = sArrEinkauf[s + 1];
                            sArrEinkauf[s + 1] = temp;
                        }
                    }
                }
                return EinkaufSortieren(sArrEinkauf, temp);
            }
WitchHunter0815  22.04.2020, 19:51
@poposalat

Weil du Arraytypen mischst ....

arr[0,0] ist nicht glecih arr[0][0]

und

die Größe des arr[] kannst du per arr.Length bestimmen die von arr[,] nur per arr.GetLength(0)

Wie schon einige schrieben, loope durch den array. Nutze String.split um den string aufzuteilen. Und speichere alles außer das erste Element und lege in ab.

Woher ich das weiß:Berufserfahrung