Invertire Gli Array
Scorri per mostrare il menu
Invertire un array significa cambiare l'ordine dei suoi elementi in modo che il primo elemento diventi l'ultimo, il secondo diventi il penultimo e così via. Questa operazione è utile in situazioni come annullare azioni, visualizzare gli elementi più recenti per primi o semplicemente quando è necessario elaborare i dati in ordine inverso. Comprendere come invertire gli array aiuta a manipolare i dati in modo più flessibile nei programmi C#.
Program.cs
12345678910111213141516171819202122232425262728using System; namespace ConsoleApp { public class Program { public static void Main(string[] args) { int[] numbers = { 1, 2, 3, 4, 5 }; int n = numbers.Length; // Reverse the array in place using a for loop for (int i = 0; i < n / 2; i++) { int temp = numbers[i]; numbers[i] = numbers[n - 1 - i]; numbers[n - 1 - i] = temp; } Console.WriteLine("Reversed array:"); foreach (int num in numbers) { Console.Write(num + " "); } } } }
Il codice sopra mostra come invertire un array in loco utilizzando un ciclo for. L'algoritmo funziona scambiando l'elemento all'inizio dell'array con quello alla fine, poi procedendo verso il centro e ripetendo questo processo fino a raggiungere la metà dell'array. In questo modo, ogni coppia di elementi viene scambiata una sola volta e l'inversione viene completata in modo efficiente senza la necessità di spazio aggiuntivo per un altro array.
Program.cs
123456789101112131415161718192021222324252627282930313233using System; namespace ConsoleApp { public class Program { public static void Main(string[] args) { int[] original = { 1, 2, 3, 4, 5 }; int n = original.Length; int[] reversed = new int[n]; // Create a new reversed array for (int i = 0; i < n; i++) { reversed[i] = original[n - 1 - i]; } Console.WriteLine("Original array:"); foreach (int num in original) { Console.Write(num + " "); } Console.WriteLine("\nReversed array (new):"); foreach (int num in reversed) { Console.Write(num + " "); } } } }
Questo esempio di codice mostra come creare un nuovo array invertito a partire dall'array originale senza modificarlo. Ogni elemento viene copiato dall'array originale in un nuovo array in ordine inverso. Questo approccio consente di mantenere invariato l'array originale, fornendo al contempo una versione invertita da utilizzare separatamente.
1. Qual è la principale differenza tra l'inversione in loco e la creazione di una copia invertita?
2. Quanti scambi sono necessari per invertire un array di lunghezza n?
3. Perché potresti voler preservare l'array originale durante l'inversione?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione