logo

Selectie sorteren in Java

We kunnen een Java-programma maken om array-elementen te sorteren met behulp van selectiesortering. Bij het selectie-sorteeralgoritme zoeken we naar het laagste element en rangschikken we dit op de juiste locatie. We ruilen het huidige element met het volgende laagste nummer.

selectie sorteren

Hoe werkt selectiesortering?

Het selectie-sorteeralgoritme werkt op een heel eenvoudige manier. Het onderhoudt twee subarrays voor de gegeven array.

tabel in reactie
  • De subarray is al gesorteerd.
  • En de tweede subarray is ongesorteerd.

Bij elke iteratie van selectiesortering wordt een element uit de ongesorteerde subarray gekozen en naar de gesorteerde subarray verplaatst.

voorwaartse ketening
 arr[] = 25 35 45 12 65 10 // Find the minimum element in arr[0...5] and place it at beginning. 10 25 35 45 12 65 // Find the minimum element in arr[1...5] and place it at beginning of arr[1...5] 10 12 25 35 45 65 // Find the minimum element in arr[2...5] and place it at beginning of arr[2...5] No, you can see that the array is already sorted. 10 12 25 35 45 65 

Tijdcomplexiteit

Best: ?(n^2)
Gemiddeld: ?(n^2)
Slechtst: O(n^2)

Ruimtecomplexiteit

O(1)

Selectie Sorteren Java-voorbeeld

 public class SelectionSortExample { public static void selectionSort(int[] arr){ for (int i = 0; i <arr.length - 1; i++) { int index="i;" for (int j="i" + < arr.length; j++){ if (arr[j] arr[index]){ lowest } smallernumber="arr[index];" arr[index]="arr[i];" arr[i]="smallerNumber;" public static void main(string a[]){ int[] arr1="{9,14,3,2,43,11,58,22};" system.out.println('before selection sort'); for(int i:arr1){ system.out.print(i+' '); system.out.println(); selectionsort(arr1); sorting array using sort system.out.println('after pre> <p>Output:</p> <pre> Before Selection Sort 9 14 3 2 43 11 58 22 After Selection Sort 2 3 9 11 14 22 43 58 </pre> <h2>Selection Sort in Java (Another way)</h2> <p>You can also use a method where array is not predefined. Here, user has to put the elements as input.</p> <p>In the following Java program, we ask user to enter the array elements or number, now compare the array&apos;s element and start swapping with the variable temp. Put the first element in the temp and the second element in the first, and then temp in the second number and continue for the next match to sort the whole array in ascending order.</p> <pre> import java.util.Scanner; public class SelectionSortExample2 { public static void main(String args[]) { int size, i, j, temp; int arr[] = new int[50]; Scanner scan = new Scanner(System.in); System.out.print(&apos;Enter Array Size : &apos;); size = scan.nextInt(); System.out.print(&apos;Enter Array Elements : &apos;); for(i=0; i<size; i++) { arr[i]="scan.nextInt();" } system.out.print('sorting array using selection sort technique..
'); for(i="0;" i<size; for(j="i+1;" j arr[j]) temp="arr[i];" arr[j]="temp;" system.out.print('now the after sorting is :
'); system.out.print(arr[i]+ ' '); < pre> <p>Output:</p> <strong> Use image SelectionSort</strong> </size;></pre></arr.length>

Selectie sorteren in Java (andere manier)

U kunt ook een methode gebruiken waarbij de array niet vooraf is gedefinieerd. Hier moet de gebruiker de elementen als invoer invoeren.

In het volgende Java-programma vragen we de gebruiker om de array-elementen of het nummer in te voeren. Vergelijk nu het element van de array en begin met het wisselen met de variabele temp. Plaats het eerste element in de temp en het tweede element in het eerste, en dan temp in het tweede getal en ga door voor de volgende match om de hele array in oplopende volgorde te sorteren.

 import java.util.Scanner; public class SelectionSortExample2 { public static void main(String args[]) { int size, i, j, temp; int arr[] = new int[50]; Scanner scan = new Scanner(System.in); System.out.print(&apos;Enter Array Size : &apos;); size = scan.nextInt(); System.out.print(&apos;Enter Array Elements : &apos;); for(i=0; i<size; i++) { arr[i]="scan.nextInt();" } system.out.print(\'sorting array using selection sort technique..
\'); for(i="0;" i<size; for(j="i+1;" j arr[j]) temp="arr[i];" arr[j]="temp;" system.out.print(\'now the after sorting is :
\'); system.out.print(arr[i]+ \' \'); < pre> <p>Output:</p> <strong> Use image SelectionSort</strong> </size;>