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

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