Introducere privind sortarea selecției în Java

Selecția Sortare în Java este o metodă de sortare care găsește continuu cel mai mic element din partea nesortată și îl păstrează la început (pentru sortare în ordine crescătoare). Procesul va fi repetat până la sortarea tabloului de intrare. De asemenea, în Sortare de selecție, vom împărți matricea de intrare în două subarburi în care un tablou este utilizat pentru elemente sortate, iar altul este pentru elemente nesortate. La început, nu vor exista elemente în subarba sortată. Să vedem detaliat modul de lucru al selecției în secțiunea următoare.

Cum funcționează sortarea selecției în Java

Sortarea selecției funcționează într-o manieră simplă, unde păstrează două subarburi din tabloul de intrare. Sunt:

  • Subarba sortată pentru a păstra elementele sortate
  • Subarba nesortată pentru a păstra elementele nesortate.

algoritm:

Urmează algoritmul folosit pentru sortarea selecției

  1. Setați indicatorul minim (MIN) la locația 0.
  2. Găsiți cel mai mic element din lista de elemente din tablou
  • Schimbă elementul minim cu locația 0
  1. Mutați indicatorul MIN în poziția următoare
  2. Repetați procesul până la sortarea intrării.

Să înțelegem tipul de selecție cu un exemplu. Urmărește tabloul de intrare care trebuie sortat. Elementele de culoare albastru îndrăzneț vor face parte din tabloul sortat.

Pasul 1 : Setați indicatorul MIN la prima locație. Deci, indicatorul MIN indică 15.

Cel mai mic: = 15

Pasul 2 : Găsiți cel mai mic element comparându-l cu restul elementelor. Comparativ 15 și 21, 15 este cel mai mic. Deci, cel mai mic nu se va schimba în acest caz.

Cel mai mic: = 15

Comparativ 15 și 6, 6 este cel mai mic.

Cel mai mic: = 6

Comparativ 6 și 3, 3 este cel mai mic.

Cel mai mic: = 3

3 va fi și mai mic în acest caz, deoarece 19 este mai mare decât 3.

Cel mai mic: = 3

Cel mai mic: = 3

În cele din urmă, în această iterație, 3 se găsește a fi cel mai mic.

Pasul 3 : Schimbă cel mai mic element cu elementul din locația 0.

Pasul 4: Măriți indicatorul MIN la următoarea poziție.

Pasul 5: Găsiți următorul element cel mai mic, comparându-l cu restul elementelor.

Cel mai mic: = 21

Cel mai mic: = 6

Cel mai mic: = 6

Cel mai mic: = 6

Cel mai mic: = 6

Pasul 6: Schimbă cel mai mic element cu elementul din locația 1.

Repetați procesul până când se formează un tablou sortat așa cum se arată mai jos.

Exemple de implementare a sortării selecției în Java

După cum am menționat mai sus, sortarea de selecție se bazează pe găsirea minimului și schimbarea. Acum, să vedem cum să implementăm sortul de selecție folosind Java.

Program Java pentru a sorta elementele într-o matrice folosind Sortare selecție

import java.util.*;
public class SelSortExample (
//Method that implements Selectionsort
public static void selsort(int() arr)
(
int n=arr.length; //length of the array
for(int i=0;i (
int MIN=i; //set the first position as minimum
System.out.println("Sorting based on Number "+(i+1));
//Find the smallest element by comparing with the element in MIN position
for(int j=i+1;j (
System.out.println("Comparing "+ arr(MIN) + " and " + arr(j));
if(arr(j) (
System.out.println(arr(MIN) + " is greater than " + arr(j) );
MIN=j;
)
)
//Swap the smallest element with element in MIN position
int temp=arr(i);
arr(i)=arr(MIN);
arr(MIN)=temp;
)
)
public static void main(String() args) (
int() arr= (15, 21, 6, 3, 19, 20); // input array
System.out.println("Elements in the array before Sorting: "+ Arrays. toString (arr));
selsort (arr);//calling the selection sort method
System.out.println("Elements in the array after Sorting: "+Arrays. toString (arr));
)
)
import java.util.*;
public class SelSortExample (
//Method that implements Selectionsort
public static void selsort(int() arr)
(
int n=arr.length; //length of the array
for(int i=0;i (
int MIN=i; //set the first position as minimum
System.out.println("Sorting based on Number "+(i+1));
//Find the smallest element by comparing with the element in MIN position
for(int j=i+1;j (
System.out.println("Comparing "+ arr(MIN) + " and " + arr(j));
if(arr(j) (
System.out.println(arr(MIN) + " is greater than " + arr(j) );
MIN=j;
)
)
//Swap the smallest element with element in MIN position
int temp=arr(i);
arr(i)=arr(MIN);
arr(MIN)=temp;
)
)
public static void main(String() args) (
int() arr= (15, 21, 6, 3, 19, 20); // input array
System.out.println("Elements in the array before Sorting: "+ Arrays. toString (arr));
selsort (arr);//calling the selection sort method
System.out.println("Elements in the array after Sorting: "+Arrays. toString (arr));
)
)
import java.util.*;
public class SelSortExample (
//Method that implements Selectionsort
public static void selsort(int() arr)
(
int n=arr.length; //length of the array
for(int i=0;i (
int MIN=i; //set the first position as minimum
System.out.println("Sorting based on Number "+(i+1));
//Find the smallest element by comparing with the element in MIN position
for(int j=i+1;j (
System.out.println("Comparing "+ arr(MIN) + " and " + arr(j));
if(arr(j) (
System.out.println(arr(MIN) + " is greater than " + arr(j) );
MIN=j;
)
)
//Swap the smallest element with element in MIN position
int temp=arr(i);
arr(i)=arr(MIN);
arr(MIN)=temp;
)
)
public static void main(String() args) (
int() arr= (15, 21, 6, 3, 19, 20); // input array
System.out.println("Elements in the array before Sorting: "+ Arrays. toString (arr));
selsort (arr);//calling the selection sort method
System.out.println("Elements in the array after Sorting: "+Arrays. toString (arr));
)
)
import java.util.*;
public class SelSortExample (
//Method that implements Selectionsort
public static void selsort(int() arr)
(
int n=arr.length; //length of the array
for(int i=0;i (
int MIN=i; //set the first position as minimum
System.out.println("Sorting based on Number "+(i+1));
//Find the smallest element by comparing with the element in MIN position
for(int j=i+1;j (
System.out.println("Comparing "+ arr(MIN) + " and " + arr(j));
if(arr(j) (
System.out.println(arr(MIN) + " is greater than " + arr(j) );
MIN=j;
)
)
//Swap the smallest element with element in MIN position
int temp=arr(i);
arr(i)=arr(MIN);
arr(MIN)=temp;
)
)
public static void main(String() args) (
int() arr= (15, 21, 6, 3, 19, 20); // input array
System.out.println("Elements in the array before Sorting: "+ Arrays. toString (arr));
selsort (arr);//calling the selection sort method
System.out.println("Elements in the array after Sorting: "+Arrays. toString (arr));
)
)

Ieșire de eșantion:

În programul de mai sus, avem două metode-metode principale și vinde metoda sortare. Metoda principală numește metoda de sortare a vânzării care trece tabloul de intrare ca argument. Elementul minim va fi identificat și schimbat cu elementul indicat de MIN.

Sortarea de selecție poate fi de asemenea folosită în cazul în care tabloul de intrare nu este definit în cod. Să vedem cum funcționează folosind programul de mai jos.

Program Java pentru a sorta elementele folosind Sortare de selecție

import java.util.*;
public class SelectionSortExample
(
public static void main(String args())
(
int n, i, j, tempvar;
Scanner sc = new Scanner(System.in); //To take the input from user
System.out.print("Enter the size of array : \n");
n = sc.nextInt();
int array() = new int(n); //initialising the array
System.out.print("Enter the elements that need to be inserted in the array : \n");
//inserting the elements to the array
for(i=0; i (
array(i) = sc.nextInt();
)
System.out.print("array before Sorting: \n"+ Arrays.toString(array));
System.out.print("\nSorting begins here..\n");
for(i=0; i (
for(j=i+1; j (
if(array(i) > array(j))
(
tempvar = array(i);
array(i) = array(j);
array(j) = tempvar;
)
)
)
System.out.print("Array after Sorting is :\n");
for(i=0; i (
System.out.print(array(i)+ " ");
)
)
)
import java.util.*;
public class SelectionSortExample
(
public static void main(String args())
(
int n, i, j, tempvar;
Scanner sc = new Scanner(System.in); //To take the input from user
System.out.print("Enter the size of array : \n");
n = sc.nextInt();
int array() = new int(n); //initialising the array
System.out.print("Enter the elements that need to be inserted in the array : \n");
//inserting the elements to the array
for(i=0; i (
array(i) = sc.nextInt();
)
System.out.print("array before Sorting: \n"+ Arrays.toString(array));
System.out.print("\nSorting begins here..\n");
for(i=0; i (
for(j=i+1; j (
if(array(i) > array(j))
(
tempvar = array(i);
array(i) = array(j);
array(j) = tempvar;
)
)
)
System.out.print("Array after Sorting is :\n");
for(i=0; i (
System.out.print(array(i)+ " ");
)
)
)
import java.util.*;
public class SelectionSortExample
(
public static void main(String args())
(
int n, i, j, tempvar;
Scanner sc = new Scanner(System.in); //To take the input from user
System.out.print("Enter the size of array : \n");
n = sc.nextInt();
int array() = new int(n); //initialising the array
System.out.print("Enter the elements that need to be inserted in the array : \n");
//inserting the elements to the array
for(i=0; i (
array(i) = sc.nextInt();
)
System.out.print("array before Sorting: \n"+ Arrays.toString(array));
System.out.print("\nSorting begins here..\n");
for(i=0; i (
for(j=i+1; j (
if(array(i) > array(j))
(
tempvar = array(i);
array(i) = array(j);
array(j) = tempvar;
)
)
)
System.out.print("Array after Sorting is :\n");
for(i=0; i (
System.out.print(array(i)+ " ");
)
)
)
import java.util.*;
public class SelectionSortExample
(
public static void main(String args())
(
int n, i, j, tempvar;
Scanner sc = new Scanner(System.in); //To take the input from user
System.out.print("Enter the size of array : \n");
n = sc.nextInt();
int array() = new int(n); //initialising the array
System.out.print("Enter the elements that need to be inserted in the array : \n");
//inserting the elements to the array
for(i=0; i (
array(i) = sc.nextInt();
)
System.out.print("array before Sorting: \n"+ Arrays.toString(array));
System.out.print("\nSorting begins here..\n");
for(i=0; i (
for(j=i+1; j (
if(array(i) > array(j))
(
tempvar = array(i);
array(i) = array(j);
array(j) = tempvar;
)
)
)
System.out.print("Array after Sorting is :\n");
for(i=0; i (
System.out.print(array(i)+ " ");
)
)
)
import java.util.*;
public class SelectionSortExample
(
public static void main(String args())
(
int n, i, j, tempvar;
Scanner sc = new Scanner(System.in); //To take the input from user
System.out.print("Enter the size of array : \n");
n = sc.nextInt();
int array() = new int(n); //initialising the array
System.out.print("Enter the elements that need to be inserted in the array : \n");
//inserting the elements to the array
for(i=0; i (
array(i) = sc.nextInt();
)
System.out.print("array before Sorting: \n"+ Arrays.toString(array));
System.out.print("\nSorting begins here..\n");
for(i=0; i (
for(j=i+1; j (
if(array(i) > array(j))
(
tempvar = array(i);
array(i) = array(j);
array(j) = tempvar;
)
)
)
System.out.print("Array after Sorting is :\n");
for(i=0; i (
System.out.print(array(i)+ " ");
)
)
)

Ieșire de eșantion:

Aici, elementele de intrare date de utilizator vor fi comparate cu variabila temporară și schimbate. Procesul se va repeta până la formarea unui tablou sortat.

Performanța sortării selecției

Această tehnică de sortare este utilizată pentru simplitatea sa și pentru anumite alte avantaje de performanță față de alte tehnici de sortare.

Concluzie

Sortul de selecție nu funcționează eficient pe listele mari, deoarece consumă mai mult timp pentru comparație. Sortarea de selecție este o metodă prin care un tablou de intrare va fi împărțit în două subarburi pentru a le menține elemente sortate și nesortate. Elementul minim din tablă va fi schimbat cu elementul în prima poziție și procesul continuă până la formarea unui tablou sortat.

Articole recomandate

Acesta este un ghid pentru selectarea sortării în Java. Aici vom discuta Introducerea, Lucrul și Performanța sortării selecției împreună cu câteva exemple. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -

  1. Sortare Merge în Java
  2. Sortare la grămadă în Java
  3. Copiați constructorul în Java
  4. Modele de stele în Java
  5. Sort de grămadă în Python

Categorie: