Algoritmi di ordinamento in C#
Pagina 1 di 7
L’ordinamento di una lista di oggetti è uno dei problemi fondamentali del calcolo automatico. Esistono diverse soluzioni per effettuare questa operazione ed esse rientrano nell’area dei cosiddetti algoritmi di ordinamento. Alcuni di questi algoritmi sono semplici e intuitivi, mentre altri sono più complessi e permettono di ottenere prestazioni migliori.
Tra i più conosciuti e diffusi algoritmi di ordinamento vi sono:
- Bubble Sort
- Heap Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Selection Sort
- Shell Sort
BUBBLE SORT
Il Bubble Sort opera comparando ogni elemento di una lista con l’elemento successivo, scambiandoli di posto se necessario. L’algoritmo ripete questo processo finchè non scorre l’intera lista senza effettuare scambi tra gli elementi. Il nome bubble (bolla) deriva dal modo in cui gli elementi vengono ordinati: quelli più piccoli risalgono verso le proprie posizioni corrette all’interno della lista, proprio come bollicine di una bibita gassata. A causa di questo modo di operare questo algoritmo è considerato il più inefficiente tra quelli elencati.
Di seguito il codice di una implementazione di tale algoritmo:
//Array di interi
private int[] a = new int[100];
//Numero di elementi dell'array
private int x;
public void BubbleSort()
{
int i;
int j;
int temp;
for (i = (x - 1); i >= 0; i--)
{
for (j = 1; j <= i; j++)
{
if (a[j - 1] > a[j])
{
temp = a[j - 1];
a[j - 1] = a[j];
a[j] = temp;
}
}
}
}







