Въведение в сортирането на подбор в 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. Звездни модели в Java
  5. Сортиране на купи в Python

Категория: