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