Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Manuell Sortering Av Matriser | Arraymanipulering og Sortering
C#-Arrayer

Manuell Sortering Av Matriser

Sveip for å vise menyen

Sortering er en grunnleggende operasjon i programmering fordi det hjelper deg å organisere data for mer effektiv søking, analyse og presentasjon av informasjon. Selv om C# tilbyr innebygde metoder for å sortere arrayer, gir forståelse av hvordan sorteringsalgoritmer fungerer verdifull innsikt i algoritmisk tenkning og problemløsning. Manuelle sorteringsalgoritmer, som selection sort, lar deg se hvordan elementer sammenlignes og flyttes, steg for steg, for å oppnå en sortert array. Denne forståelsen er avgjørende i situasjoner hvor du trenger tilpasset sorteringslogikk eller arbeider i miljøer med begrenset biblioteksstøtte.

Note
Definisjon

Selection sort er en enkel sorteringsalgoritme som gjentatte ganger velger det minste (for stigende rekkefølge) eller største (for synkende rekkefølge) elementet fra den usorterte delen av arrayen og flytter det til riktig posisjon i den sorterte delen.

Program.cs

Program.cs

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
using System; namespace ConsoleApp { public class Program { public static void Main(string[] args) { int[] numbers = { 5, 2, 9, 1, 5, 6 }; Console.WriteLine("Original array:"); PrintArray(numbers); SelectionSortAscending(numbers); Console.WriteLine("Sorted array (ascending):"); PrintArray(numbers); } public static void SelectionSortAscending(int[] array) { int n = array.Length; for (int i = 0; i < n - 1; i++) { int minIndex = i; for (int j = i + 1; j < n; j++) { if (array[j] < array[minIndex]) { minIndex = j; } } int temp = array[i]; array[i] = array[minIndex]; array[minIndex] = temp; } } public static void PrintArray(int[] array) { foreach (int num in array) { Console.Write(num + " "); } Console.WriteLine(); } } }

Utvalgssortering fungerer ved å dele arrayet inn i en sortert og en usortert del. For hvert steg velges det minste elementet fra den usorterte delen og byttes med det første usorterte elementet, slik at den sorterte delen øker med én.

I koden ovenfor starter du med å iterere gjennom hvert element i arrayet bortsett fra det siste. For hver posisjon i leter du etter den minste verdien i resten av arrayet (fra i + 1 til slutten). Når du finner et mindre element, oppdaterer du minIndex. Etter den indre løkken bytter du elementet på posisjon i med elementet på minIndex, slik at den minste verdien plasseres på gjeldende posisjon. Denne prosessen gjentas til hele arrayet er sortert i stigende rekkefølge.

Program.cs

Program.cs

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
using System; namespace ConsoleApp { public class Program { public static void Main(string[] args) { int[] numbers = { 3, 8, 4, 7, 2, 9 }; Console.WriteLine("Original array:"); PrintArray(numbers); SelectionSortDescending(numbers); Console.WriteLine("Sorted array (descending):"); PrintArray(numbers); } public static void SelectionSortDescending(int[] array) { int n = array.Length; for (int i = 0; i < n - 1; i++) { int maxIndex = i; for (int j = i + 1; j < n; j++) { if (array[j] > array[maxIndex]) { maxIndex = j; } } int temp = array[i]; array[i] = array[maxIndex]; array[maxIndex] = temp; } } public static void PrintArray(int[] array) { foreach (int num in array) { Console.Write(num + " "); } Console.WriteLine(); } } }

Koden definerer en Program-klasse med en Main-metode som demonstrerer hvordan man sorterer et heltallsarray i synkende rekkefølge ved bruk av utvalgssortering. Du starter med å initialisere numbers-arrayet og skriver ut dets opprinnelige innhold. Deretter kalles SelectionSortDescending-metoden for å sortere arrayet fra størst til minst. Denne metoden fungerer ved gjentatte ganger å finne den største verdien i den usorterte delen av arrayet og bytte den med det første usorterte elementet. Etter sorteringen skriver programmet ut det oppdaterte arrayet, som viser elementene i synkende rekkefølge.

1. Hva er tidskompleksiteten til utvalgssortering (selection sort)?

2. Hvordan skiller utvalgssortering seg fra boblesortering?

3. Hvorfor kan det være aktuelt å implementere sortering manuelt i stedet for å bruke innebygde metoder?

question mark

Hva er tidskompleksiteten til utvalgssortering (selection sort)?

Velg det helt riktige svaret

question mark

Hvordan skiller utvalgssortering seg fra boblesortering?

Velg det helt riktige svaret

question mark

Hvorfor kan det være aktuelt å implementere sortering manuelt i stedet for å bruke innebygde metoder?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 3. Kapittel 3
some-alt