Увод о избору сортирања на Јави
Избор сортирања у Јави је метода сортирања која непрекидно проналази најмањи елемент у несортираном делу и задржава га на почетку (за сортирање узлазним редоследом). Процес ће се понављати све док се не сортира улазни низ. Такође ћемо, у Селецтион Сорт, подијелити улазни низ на два подрасла, гдје се један низ користи за сортиране елементе, а други низ за несортиране елементе. У почетку неће бити никаквих елемената у сортираном подмарку. Да видимо детаље о раду селекције у наредном одељку.
Како ради сортирање селекције у Јави
Селекција сортирања функционише на једноставан начин гдје чува два подрасла од улазног низа. Су:
- Сортирани подврста за одржавање сортираних елемената
- Норторисана подврста да би се задржали несортирани елементи.
Алгоритам:
Следи алгоритам који се користи за сортирање селекције
- Подесите минимални (МИН) показивач на локацију 0.
- Пронађите најмањи елемент са листе елемената у низу
- Замените минимални елемент с локацијом 0
- Померите показивач МИН на следећу позицију
- Понављајте поступак све док се не сортира улазни низ.
Да разумемо врсту селекције на примеру. Слиједи улазни низ који се мора сортирати. Елементи у Болд Блуе боји бит ће дио разврстаног низа.
Корак 1 : Поставите МИН показивач на прво место. Дакле, показивач МИН показује на 15.
Најмањи: = 15
Корак 2 : Пронађите најмањи елемент упоређујући га са осталим елементима. Упоређивање 15 и 21, 15 је најмање. Дакле, ни најмањи се неће променити у овом случају.
Најмањи: = 15
Упоређивање 15 и 6, 6 је најмање.
Најмањи: = 6
Упоређивање 6 и 3, 3 је најмање.
Најмањи: = 3
3 ће такође бити мања у овом случају, јер је 19 већа од 3.
Најмањи: = 3
Најмањи: = 3
Коначно, у овој итерацији је 3 најмања.
Корак 3 : Замените најмањи елемент елементом на локацији 0.
Корак 4: Повећајте МИН показивач на следећу позицију.
Корак 5: Пронађите следећи најмањи елемент упоређујући га са осталим елементима.
Најмањи: = 21
Најмањи: = 6
Најмањи: = 6
Најмањи: = 6
Најмањи: = 6
Корак 6: Замените најмањи елемент елементом у локацији 1.
Понављајте поступак док се не формира сортирани низ као што је приказано у наставку.
Примјери за имплементацију Сорт Селецтион у Јави
Као што је већ горе поменуто, сортирање се заснива на проналажењу минимума и замени. Сада, да видимо како имплементирати селекциону врсту користећи Јава.
Јава програм за сортирање елемената у низу помоћу Сорт Селецтион
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));
)
)
Узорак излаза:
У горњем програму имамо две главне методе и метод сортирања. Главни метод назива методу сортирања продаје пролазећи уносни низ као аргумент. Минимални елемент ће бити идентификован и замењен елементом означеним са МИН.
Одабир сортирања се може користити и тамо гдје улазни низ није дефиниран у коду. Погледајмо како то функционише помоћу програма у наставку.
Јава програм за сортирање елемената помоћу Сорт Сорт
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)+ " ");
)
)
)
Узорак излаза:
Овде ће се улазни елементи које даје корисник упоређивати са привременом променљивом и заменити. Процес ће се понављати све док се не формира сортирани низ.
Извођење сортирања избора
Ова техника сортирања се користи због своје једноставности и одређених других предности у односу на остале технике сортирања.
Закључак
Избор селекције не делује ефикасно на великим листама јер захтева више времена за поређење. Селецтион сорт је метода у којој ће се улазни низ подијелити у два подрасла како би се задржали сортирани и несортирани елементи. Минимални елемент у низу биће замењен елементом на првој позицији и процес се наставља све док се не формира сортирани низ.
Препоручени чланци
Ово је водич за селекцију Сорт ин Јава. Овде смо расправљали о увођењу, раду и извођењу сортирања селекције заједно са неким примерима. Такође можете погледати следеће чланке да бисте сазнали више -
- Спајање сортирања у Јави
- Хеап Сорт ин Јава
- Копирај конструктор у Јава
- Стар Паттернс на Јави
- Хеап Сорт ин Питхон