Можем да създадем програма на Java за сортиране на елементи от масив чрез сортиране по избор. В алгоритъма за сортиране на селекция търсим най-ниския елемент и го подреждаме на правилното място. Разменяме текущия елемент със следващия най-малък номер.
Как работи сортирането при избор?
Алгоритъмът за сортиране на селекцията работи по много прост начин. Той поддържа два подмасива за дадения масив.
реагираща таблица
- Подмасивът вече е сортиран.
- И вторият подмасив е несортиран.
С всяка итерация на сортиране при избор, елемент се избира от несортирания подмасив и се премества в сортирания подмасив.
основен метод java
arr[] = 25 35 45 12 65 10 // Find the minimum element in arr[0...5] and place it at beginning. 10 25 35 45 12 65 // Find the minimum element in arr[1...5] and place it at beginning of arr[1...5] 10 12 25 35 45 65 // Find the minimum element in arr[2...5] and place it at beginning of arr[2...5] No, you can see that the array is already sorted. 10 12 25 35 45 65
Времева сложност
Най-добър: ?(n^2)Средно аритметично: ?(n^2)
Най-лошото: O(n^2)
Космическа сложност
О(1)Пример за сортиране на избор на Java
public class SelectionSortExample { public static void selectionSort(int[] arr){ for (int i = 0; i <arr.length - 1; i++) { int index="i;" for (int j="i" + < arr.length; j++){ if (arr[j] arr[index]){ lowest } smallernumber="arr[index];" arr[index]="arr[i];" arr[i]="smallerNumber;" public static void main(string a[]){ int[] arr1="{9,14,3,2,43,11,58,22};" system.out.println('before selection sort'); for(int i:arr1){ system.out.print(i+' '); system.out.println(); selectionsort(arr1); sorting array using sort system.out.println('after pre> <p>Output:</p> <pre> Before Selection Sort 9 14 3 2 43 11 58 22 After Selection Sort 2 3 9 11 14 22 43 58 </pre> <h2>Selection Sort in Java (Another way)</h2> <p>You can also use a method where array is not predefined. Here, user has to put the elements as input.</p> <p>In the following Java program, we ask user to enter the array elements or number, now compare the array's element and start swapping with the variable temp. Put the first element in the temp and the second element in the first, and then temp in the second number and continue for the next match to sort the whole array in ascending order.</p> <pre> import java.util.Scanner; public class SelectionSortExample2 { public static void main(String args[]) { int size, i, j, temp; int arr[] = new int[50]; Scanner scan = new Scanner(System.in); System.out.print('Enter Array Size : '); size = scan.nextInt(); System.out.print('Enter Array Elements : '); for(i=0; i<size; i++) { arr[i]="scan.nextInt();" } system.out.print('sorting array using selection sort technique.. '); for(i="0;" i<size; for(j="i+1;" j arr[j]) temp="arr[i];" arr[j]="temp;" system.out.print('now the after sorting is : '); system.out.print(arr[i]+ ' '); < pre> <p>Output:</p> <strong> Use image SelectionSort</strong> </size;></pre></arr.length>
Сортиране на селекция в Java (друг начин)
Можете също да използвате метод, при който масивът не е предварително дефиниран. Тук потребителят трябва да въведе елементите като вход.
В следващата Java програма молим потребителя да въведе елементите на масива или числото, сега сравняваме елемента на масива и започваме да разменяме с променливата temp. Поставете първия елемент в temp и втория елемент в първия, а след това temp във втория номер и продължете за следващото съвпадение, за да сортирате целия масив във възходящ ред.
import java.util.Scanner; public class SelectionSortExample2 { public static void main(String args[]) { int size, i, j, temp; int arr[] = new int[50]; Scanner scan = new Scanner(System.in); System.out.print('Enter Array Size : '); size = scan.nextInt(); System.out.print('Enter Array Elements : '); for(i=0; i<size; i++) { arr[i]="scan.nextInt();" } system.out.print(\'sorting array using selection sort technique.. \'); for(i="0;" i<size; for(j="i+1;" j arr[j]) temp="arr[i];" arr[j]="temp;" system.out.print(\'now the after sorting is : \'); system.out.print(arr[i]+ \' \'); < pre> <p>Output:</p> <strong> Use image SelectionSort</strong> </size;>