logo

Ordenació de selecció en Java

Podem crear un programa java per ordenar elements de matriu mitjançant l'ordenació de selecció. En l'algorisme d'ordenació de selecció, cerquem l'element més baix i l'organitzem a la ubicació adequada. Canviem l'element actual amb el número més baix següent.

ordenació de selecció

Com funciona l'ordenació de selecció?

L'algorisme d'ordenació per selecció funciona d'una manera molt senzilla. Manté dos subarrays per a la matriu donada.

llista doble enllaçada
  • El subbarrat ja està ordenat.
  • I el segon subarray no està ordenat.

Amb cada iteració d'ordenació per selecció, s'escull un element de la subbarra no ordenada i es mou a la subbarra ordenada.

són cantants
 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 

Complexitat temporal

Millor: ?(n^2)
Mitjana: ?(n^2)
El pitjor: O(n^2)

Complexitat espacial

O(1)

Exemple de Java d'ordenació de selecció

 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>

Ordenació de selecció en Java (una altra manera)

També podeu utilitzar un mètode on la matriu no estigui predefinida. Aquí, l'usuari ha de posar els elements com a entrada.

En el següent programa Java, demanem a l'usuari que introdueixi els elements o el nombre de la matriu, ara compareu l'element de la matriu i comenceu a canviar amb la variable temp. Posa el primer element al temp i el segon element al primer, i després temp al segon número i continua per a la següent coincidència per ordenar tota la matriu en ordre ascendent.

 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;>