int[] arr = {800,11,50,771,649,770,240, 9};
int temp = 0;
for (int write = 0; write < arr.Length; write++)
{
for (int sort = 0; sort < arr.Length - 1; sort++)
{
if (arr[sort] > arr[sort + 1])
{
temp = arr[sort + 1];
arr[sort + 1] = arr[sort];
arr[sort] = temp;
}
}
Console.Write("{0} ", arr[write]);
}
Tutto ciò che sto tentando di fare è un semplice bubble sort con questo array. Mi piacerebbe capire perché l'ordinamento è rovinato. Nel esempio, qui è quando la matrice è {800,11,50,771,649,770,240, 9}
:Semplice bubble sort C#
Ecco ciò che viene visualizzato: 11, 50, 649, 9, 649, 770, 771, 800
Sto pensando che potrei mancare qualcosa nel confronto.
Sei ciclo esterno va dall'inizio alla fine, dovrebbe essere fine per iniziare! inoltre il tuo ciclo interno dovrebbe essere limitato al valore di scrittura. – Polity
@Polity: non credo sia corretto. Come le risposte mostrano, il ciclo esterno è corretto così com'è. Hai ragione riguardo al ciclo interno però. –
Spero che questo sia solo un esercizio di apprendimento delle manipolazioni di array? Non riesco a pensare a nessuna applicazione in cui un Bubble Sort sarebbe la strategia di ordinamento "ottimale". Se è solo per dimostrazione/esercizio mentale, allora va bene, ma se stai usando questa è un'applicazione del mondo reale, forse dovresti guardare qualche altro algoritmo di "ordinamento". – Th3Minstr3l