Úvod do výběru Seřadit v Javě

Výběr Třídit v Javě je metoda třídění, která nepřetržitě najde nejmenší prvek v netříděné části a udržuje jej na začátku (pro třídění ve vzestupném pořadí). Proces se bude opakovat, dokud nebude tříděno vstupní pole. Ve výběrovém třídění také rozdělíme vstupní pole do dvou dílčích polí, kde jedno pole se používá pro tříděné prvky a jiné pole je pro netříděné prvky. Na začátku nebudou ve tříděném subarray žádné prvky. Podívejme se podrobně na fungování výběru v následující části.

Jak výběr řazení funguje v Javě

Třídění výběru funguje jednoduchým způsobem, kde udržuje dvě dílčí pole ze vstupního pole. Oni jsou:

  • Tříděný dílčí pole pro zachování seřazených prvků
  • Netříděný dílčí pole pro zachování netříděných prvků.

Algoritmus:

Následuje algoritmus, který se používá pro výběr Výběr

  1. Nastavte minimální (MIN) ukazatel na umístění 0.
  2. Najděte nejmenší prvek ze seznamu prvků v poli
  • Zaměňte minimální prvek za umístění 0
  1. Přesuňte ukazatel MIN do další polohy
  2. Tento postup opakujte, dokud se nezařadí vstupní pole.

Pojďme pochopit výběr řazení s příkladem. Následuje vstupní pole, které musí být tříděno. Prvky v tučně modré barvě budou součástí tříděného pole.

Krok 1 : Nastavte ukazatel MIN na první místo. Takže ukazatel MIN ukazuje na 15.

Nejmenší: = 15

Krok 2 : Najděte nejmenší prvek jeho porovnáním se zbytkem prvků. Ve srovnání s 15 a 21 je 15 nejmenší. Takže nejmenší se v tomto případě nezmění.

Nejmenší: = 15

Při porovnání 15 a 6 je 6 nejmenší.

Nejmenší: = 6

Porovnání 6 a 3, 3 je nejmenší.

Nejmenší: = 3

3 bude v tomto případě také menší, protože 19 je větší než 3.

Nejmenší: = 3

Nejmenší: = 3

Nakonec se v této iteraci zjistilo, že 3 je nejmenší.

Krok 3 : Zaměňte nejmenší prvek s prvkem v umístění 0.

Krok 4: Zvýšte MIN ukazatel na další pozici.

Krok 5: Najděte nejmenší prvek porovnáním se zbytkem prvků.

Nejmenší: = 21

Nejmenší: = 6

Nejmenší: = 6

Nejmenší: = 6

Nejmenší: = 6

Krok 6: Zaměňte nejmenší prvek s prvkem v umístění 1.

Opakujte tento postup, dokud se nevytvoří seřazené pole, jak je znázorněno níže.

Příklady implementace třídění výběru v Javě

Jak již bylo uvedeno výše, výběr je založen na nalezení minima a výměny. Nyní se podívejme, jak implementovat výběrový výběr pomocí Java.

Program Java pro třídění prvků v poli pomocí třídění výběru

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

Ukázkový výstup:

Ve výše uvedeném programu máme dvě metody - hlavní a prodejní třídění. Hlavní metoda volá metodu sell sort předávající vstupní pole jako argument. Minimální prvek bude identifikován a zaměněn za prvek označený MIN.

Výběr řazení lze také použít, pokud vstupní pole není definováno v kódu. Podívejme se, jak to funguje pomocí níže uvedeného programu.

Program Java pro třídění prvků pomocí třídění výběru

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

Ukázkový výstup:

Zde budou vstupní prvky zadané uživatelem porovnány s dočasnou proměnnou a zaměněny. Proces bude opakován, dokud nebude vytvořeno tříděné pole.

Výkon výběru řazení

Tato technika třídění se používá pro svou jednoduchost a určité další výhody v porovnání s jinými způsoby třídění.

Závěr

Výběrové řazení na velkých seznamech nefunguje efektivně, protože pro porovnání vyžaduje více času. Výběrové třídění je metoda, ve které bude vstupní pole rozděleno do dvou dílčích polí, aby byly zachovány tříděné a netříděné prvky. Minimální prvek v poli bude zaměněn s prvkem v první poloze a proces pokračuje, dokud nebude vytvořeno tříděné pole.

Doporučené články

Toto je průvodce Výběrem řazení v Javě. Zde diskutujeme úvod, práci a výkon výběru řazení spolu s některými příklady. Další informace naleznete také v následujících článcích -

  1. Sloučit řazení v Javě
  2. Hromadné řazení v Javě
  3. Kopírovat konstruktor v Javě
  4. Hvězdné vzory v Javě
  5. Haldy Seřadit v Pythonu

Kategorie: