Johdanto valintalajitteluun Java-sovelluksessa

Valintalajittelu Java-järjestelmässä on lajittelumenetelmä, joka löytää jatkuvasti lajittelemattoman osan pienimmän elementin ja pitää sen alussa (lajittelua nousevassa järjestyksessä). Prosessia toistetaan, kunnes syöttöjoukko on lajiteltu. Lisäksi Valintalajittelussa jaamme tulojärjestelmän kahteen alaryhmään, joissa yhtä taulukkoa käytetään lajiteltuihin elementteihin ja toista taulukkoa lajittelemattomiin elementteihin. Alussa järjestetyssä alaryhmässä ei ole mitään elementtejä. Katsotaanpa valintaluokan toiminta yksityiskohtaisesti seuraavassa osassa.

Kuinka valintalajittelu toimii Java-versiossa

Valintalajittelu toimii yksinkertaisella tavalla, kun se pitää kaksi alaryhmää syöttöjoukosta. He ovat:

  • Lajiteltu alaryhmä pitämään lajitellut elementit
  • Lajittelematon alaryhmä lajittelemattomien elementtien pitämiseksi.

algoritmi:

Seuraava on algoritmi, jota käytetään valintalajitteluun

  1. Aseta vähimmäisosoitin (MIN) kohtaan 0.
  2. Etsi pienin elementti taulukon elementtiluettelosta
  • Vaihda minimielementti sijainnilla 0
  1. Siirrä MIN-osoitin seuraavaan sijaintiin
  2. Toista prosessi, kunnes syöttöjoukko on lajiteltu.

Ymmärtäkäämme valintalaji esimerkillä. Seuraava on tulojärjestelmä, joka on lajiteltava. Lihavoidun sinisen värin elementit ovat osa lajiteltua taulukkoa.

Vaihe 1 : Aseta MIN-osoitin ensimmäiseen sijaintiin. Joten MIN-osoitin osoittaa 15: een.

Pienin: = 15

Vaihe 2 : Etsi pienin elementti vertaamalla sitä muihin elementteihin. Vertailemalla 15 ja 21, 15 on pienin. Joten pienin ei muutu tässä tapauksessa.

Pienin: = 15

Vertailemalla 15 ja 6, 6 on pienin.

Pienin: = 6

Vertailemalla 6 ja 3, 3 on pienin.

Pienin: = 3

3 on myös tässä tapauksessa pienempi, koska 19 on suurempi kuin 3.

Pienin: = 3

Pienin: = 3

Lopuksi tässä iteraatiossa 3 havaitaan pienimmäksi.

Vaihe 3 : Vaihda pienin elementti elementin kanssa sijaintiin 0.

Vaihe 4: Lisää MIN-osoitin seuraavaan sijaintiin.

Vaihe 5: Etsi seuraava pienin elementti vertaamalla sitä muihin elementteihin.

Pienin: = 21

Pienin: = 6

Pienin: = 6

Pienin: = 6

Pienin: = 6

Vaihe 6: Vaihda pienin elementti elementillä sijainnissa 1.

Toista prosessi, kunnes muodostuu lajiteltu taulukko kuten alla.

Esimerkkejä valintalajitteluun Java-sovelluksissa

Kuten jo edellä mainittiin, valintalajittelu perustuu minimin löytämiseen ja vaihtamiseen. Katsotaanpa nyt, kuinka valintalajittelu toteutetaan Java-sovelluksella.

Java-ohjelma lajittelemaan elementit matriisissa valitsemalla lajittelu

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

Näytteen tulos:

Yllä olevassa ohjelmassa meillä on kaksi menetelmää - päämenetelmät ja myyntimenetelmä. Päämenetelmä kutsuu argumenttina myyntityyppistä menetelmää, joka ohittaa tulojärjestelmän. Minimielementti tunnistetaan ja vaihdetaan MIN: n osoittaman elementin kanssa.

Valintalajia voidaan käyttää myös silloin, kun syöttötaulukkoa ei ole määritelty koodissa. Katsotaan kuinka se toimii alla olevaa ohjelmaa käyttämällä.

Java-ohjelma elementtien lajittelua varten valitsemalla lajittelu

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)+ " ");
)
)
)

Näytteen tulos:

Tässä käyttäjän antamia syöttöelementtejä verrataan väliaikaiseen muuttujaan ja vaihdetaan. Prosessia toistetaan, kunnes muodostuu lajiteltu taulukko.

Valintalajittelun suorituskyky

Tätä lajittelutekniikkaa käytetään yksinkertaisuutensa ja tiettyjen muiden suorituskykyetujensa vuoksi verrattuna muihin lajittelutekniikoihin.

johtopäätös

Valintalaji ei toimi tehokkaasti suurissa luetteloissa, koska se vie enemmän aikaa vertailuun. Valintalajittelu on menetelmä, jossa syöttötaulukko jaetaan kahteen alaryhmään niiden lajiteltujen ja lajittelemattomien elementtien pitämiseksi. Matriisin minimielementti vaihdetaan, kun elementti on ensimmäisessä asennossa, ja prosessi jatkuu, kunnes muodostuu lajiteltu matriisi.

Suositellut artikkelit

Tämä on opas Valintalajittelu Java-sovellukseen. Tässä keskustellaan valintalajittelun johdannosta, työskentelystä ja suorituksesta sekä joitain esimerkkejä. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Yhdistä Lajittele Java
  2. Kasa lajittelu Java
  3. Kopioi rakentaja Java
  4. Tähtikuviot Java
  5. Heap Sort Pythonissa

Luokka: