Introduktion om urvalssortering i Java

Urvalssortering i Java är en sorteringsmetod som kontinuerligt hittar det minsta elementet i den osorterade delen och håller det i början (för sortering i stigande ordning). Processen upprepas tills inmatningsgruppen är sorterad. I Selection Sort kommer vi också att dela in matrisen i två subarrays där en matris används för sorterade element och andra array är för osorterade element. I början kommer det inte att finnas några element i den sorterade subarrayen. Låt oss se funktionen för urvalsorten i detalj i följande avsnitt.

Hur fungerar valssortering i Java

Urvalssortering fungerar på ett enkelt sätt där det håller två delområden från inmatningsfältet. Dom är:

  • Sorterat subarray för att behålla de sorterade elementen
  • Osorterad delgrupp för att behålla de osorterade elementen.

Algoritm:

Följande är algoritmen som används för urvalssortering

  1. Ställ in minsta (MIN) -pekaren till plats 0.
  2. Hitta det minsta elementet från listan över element i matrisen
  • Byt minimumelementet med platsen 0
  1. Flytta MIN-pekaren till nästa position
  2. Upprepa processen tills inmatningsgruppen är sorterad.

Låt oss förstå valet med ett exempel. Följande är inmatningsfältet som måste sorteras. Elementen i fet blå färg kommer att vara en del av den sorterade matrisen.

Steg 1 : Ställ MIN-pekaren på den första platsen. Så, MIN-pekaren pekar på 15.

Minsta: = 15

Steg 2 : Hitta det minsta elementet genom att jämföra det med resten av elementen. Att jämföra 15 och 21, 15 är det minsta. Så de minsta kommer inte att förändras i det här fallet.

Minsta: = 15

Att jämföra 15 och 6, 6 är det minsta.

Minsta: = 6

Att jämföra 6 och 3, 3 är det minsta.

Minsta: = 3

3 kommer också att vara mindre i detta fall, eftersom 19 är större än 3.

Minsta: = 3

Minsta: = 3

Slutligen, i denna iteration, har 3 visat sig vara den minsta.

Steg 3 : Byt det minsta elementet med elementet på plats 0.

Steg 4: Öka MIN-pekaren till nästa position.

Steg 5: Hitta nästa minsta element genom att jämföra det med resten av elementen.

Minsta: = 21

Minsta: = 6

Minsta: = 6

Minsta: = 6

Minsta: = 6

Steg 6: Byt det minsta elementet med elementet på plats 1.

Upprepa processen tills en sorterad matris bildas som visas nedan.

Exempel på implementeringssortering i Java

Som redan nämnts ovan, är urvalssorteringen baserad på att hitta minimum och byta. Låt oss nu se hur man implementerar urvalsorten med Java.

Java-program för att sortera elementen i en matris med val av sortering

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

Provutgång:

I ovanstående program har vi två metoder-huvudmetoder och säljer sorteringsmetod. Huvudmetod kallar säljsorteringsmetoden som skickar inmatningsgruppen som argument. Minsta elementet kommer att identifieras och bytas ut med det element som pekas av MIN.

Urvalssorten kan också användas där ingångsuppsättningen inte är definierad i kod. Låt oss se hur det fungerar med nedanstående program.

Java-program för att sortera elementen med val av sortering

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

Provutgång:

Här kommer ingångselementen som ges av användaren att jämföras med den tillfälliga variabeln och bytte. Processen upprepas tills en sorterad matris bildas.

Prestanda för urvalssortering

Denna sorteringsteknik används för dess enkelhet och vissa andra prestandafördelar jämfört med andra mer sorteringstekniker.

Slutsats

Urvalssorten fungerar inte effektivt på stora listor eftersom det tar mer tid för jämförelse. Urvalssortering är en metod där en inmatningsgrupp kommer att delas upp i två delområden för att hålla dem sorterade och osorterade element. Minsta elementet i arrayen kommer att bytas med elementet i den första positionen och processen fortsätter tills en sorterad matris bildas.

Rekommenderade artiklar

Detta är en guide till urvalssortering i Java. Här diskuterar vi introduktion, arbete och prestanda för urvalssortering tillsammans med några exempel. Du kan också titta på följande artiklar för att lära dig mer -

  1. Slå samman sortering i Java
  2. Heap Sort In Java
  3. Kopiera konstruktör i Java
  4. Stjärnamönster i Java
  5. Heap Sort i Python

Kategori: