Вступ про сортування вибору на Java

Сортування вибору в Java - це метод сортування, який постійно знаходить найменший елемент у несортірованной частині та зберігає його на початку (для сортування у порядку зростання). Процес буде повторюватися, поки вхідний масив не буде відсортований. Також у сортуванні вибору ми будемо ділити вхідний масив на два підмари, де один масив використовується для відсортованих елементів, а інший - для несортованих елементів. На початку в відсортованому підмножині не буде жодних елементів. Давайте докладніше розглянемо роботу сортування відбору в наступному розділі.

Як працює сортування селекції на Java

Сортування вибору працює простим способом, коли він зберігає два підриви з вхідного масиву. Вони є:

  • Відсортований підмасив для збереження відсортованих елементів
  • Несортований підмасив для збереження несортованих елементів.

Алгоритм:

Далі йде алгоритм, який використовується для сортування вибору

  1. Встановіть мінімальний (MIN) покажчик на розташування 0.
  2. Знайдіть найменший елемент зі списку елементів масиву
  • Поміняйте мінімальним елементом розташування 0
  1. Перемістіть покажчик MIN у наступне положення
  2. Повторіть процес, поки вхідний масив не буде відсортований.

Давайте розберемось із сортуванням відбору на прикладі. Далі йде вхідний масив, який необхідно сортувати. Елементи в кольорі Bold Blue будуть частиною відсортованого масиву.

Крок 1 : Встановіть вказівник MIN на перше місце. Отже, покажчик MIN вказує на 15.

Найменший: = 15

Крок 2 : Знайдіть найменший елемент, порівнявши його з рештою елементів. Порівнюючи 15 і 21, 15 найменше. Отже, найменший у цьому випадку не зміниться.

Найменший: = 15

Порівнюючи 15 і 6, 6 - це найменше.

Найменший: = 6

Порівнюючи 6 і 3, 3 найменше.

Найменший: = 3

3 буде менше і в цьому випадку, оскільки 19 більше, ніж 3.

Найменший: = 3

Найменший: = 3

Нарешті, у цій ітерації 3 виявляється найменшим.

Крок 3 : Поміняйте місцями найменший елемент на елемент 0.

Крок 4: Підвищить покажчик MIN до наступного положення.

Крок 5: Знайдіть наступний найменший елемент, порівнявши його з рештою елементів.

Найменший: = 21

Найменший: = 6

Найменший: = 6

Найменший: = 6

Найменший: = 6

Крок 6: Поміняйте місцями найменший елемент на елемент 1.

Повторюйте процес, поки не буде сформований відсортований масив, як показано нижче.

Приклади для здійснення сортування вибору в Java

Як вже було сказано вище, сортування вибору ґрунтується на знаходженні мінімуму та заміни. Тепер давайте подивимося, як реалізувати сортування вибору за допомогою Java.

Програма Java для сортування елементів у масиві за допомогою Сортування вибору

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

Вибірка зразка:

У вищевказаній програмі у нас є два основні методи та метод сортування. Основний метод викликає метод сортування продажу, передаючи масив введення як аргумент. Мінімальний елемент буде ідентифікований та замінений елементом, вказаним MIN.

Сортування вибору також може бути використане там, де вхідний масив не визначений у коді. Давайте подивимося, як це працює за допомогою наведеної нижче програми.

Програма Java для сортування елементів за допомогою Сортування вибору

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

Вибірка зразка:

Тут введені користувачем елементи введення будуть порівнюватися з тимчасовою змінною та замінюватися. Процес буде повторюватися, поки не буде сформований відсортований масив.

Виконання сортування вибору

Ця методика сортування використовується для її простоти та певних інших переваг у порівнянні з іншими більш високими методами сортування.

Висновок

Сортування вибору не працює ефективно у великих списках, оскільки вимагає більше часу для порівняння. Сортування вибору - це метод, при якому вхідний масив буде розділений на два підмари, щоб зберегти їх відсортовані та несортовані елементи. Мінімальний елемент у масиві буде замінено елементом у першій позиції, і процес триває, поки не буде сформований відсортований масив.

Рекомендовані статті

Це керівництво по сортуванню вибору в Java. Тут ми обговорюємо вступ, роботу та ефективність сортування вибору разом із деякими прикладами. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Об’єднання Сортування в Java
  2. Сортування купи в Java
  3. Копіювання конструктора на Java
  4. Зоряні візерунки на Яві
  5. Сортування купи в Python

Категорія: