69 lines
2.3 KiB
C#
69 lines
2.3 KiB
C#
using System.Globalization;
|
|
|
|
namespace bubblesort;
|
|
|
|
class Program {
|
|
static void Main(string[] args) {
|
|
//Richiesta dimensione array
|
|
int dimensione = Input();
|
|
|
|
//creazione array con valori casuali
|
|
int[] array = CreaArrayCasuale(dimensione);
|
|
|
|
//Mostra array in disordine
|
|
Console.WriteLine("Array originale:");
|
|
StampaArray(array);
|
|
|
|
|
|
Console.WriteLine();
|
|
Console.WriteLine();
|
|
|
|
//riordina array
|
|
BubbleSort(array, dimensione);
|
|
|
|
//mostra array ordinato
|
|
StampaArray(array);
|
|
|
|
}
|
|
static int Input() {
|
|
int input;
|
|
do {
|
|
Console.Write("Quanto grande deve essere l'array? ");
|
|
input = Convert.ToInt32(Console.ReadLine());
|
|
if (input <= 1) {
|
|
Console.WriteLine("L'array deve avere una dimensione maggiore di uno");
|
|
}
|
|
}
|
|
while (input <= 1);
|
|
return input;
|
|
}
|
|
|
|
static int[] CreaArrayCasuale(int p_dimensione) {
|
|
//dichiarazione e inizializzazione variabili
|
|
Random caso = new Random();
|
|
int[] ritorno = new int[p_dimensione];
|
|
|
|
for (int i = 0; i < p_dimensione; i++) {
|
|
ritorno[i] = caso.Next(-10000, 10001);//per ogni posizione di ritorno assegno un valore a caso (metodo Random.Next)
|
|
}
|
|
return ritorno;
|
|
}
|
|
static void BubbleSort(int[] p_array, int p_dimensione) {
|
|
int temp;
|
|
|
|
for (int i = 0; i < p_dimensione; i++) {//per ogni cella dell'array
|
|
for (int j = 0; j < p_dimensione - 1 - i; j++) {//per ogni cella dell'array, con il limite massimo che continua a diminuire in proporzione a i
|
|
if (p_array[j] > p_array[j + 1]) {//se la cella a sinistra è maggiore di quella a destra
|
|
temp = p_array[j]; //memorizzo la cella da cambiare (a sinistra)
|
|
p_array[j] = p_array[j + 1]; //sovrascrivo la cella a sinistra con quella a destra (la maggiore)
|
|
p_array[j + 1] = temp;//sovrascrivo la cella a destra con il valore originale di quella a sinistra
|
|
}
|
|
}
|
|
}
|
|
}
|
|
static void StampaArray(int[] p_insieme) {
|
|
for (int j = 0; j < p_insieme.Length; j++) {
|
|
Console.WriteLine("Elemento " + j + ": " + p_insieme[j]);
|
|
}
|
|
}
|
|
} |