Java Tutorial
Selection sorting is based on the idea of finding the minimum element or maximum element in an unsorted list of elements and then putting each elements in correct position in order to get sorted list of elements.
In the i'th pass, we select the record with lowest key among array[i],..., array[n] and we swap it with array[i]. As a result after i passes, the lowest records will occupy array[1],..., array[i] in sorted order.
Selection sorting time complexity is O(N^2). here N is the number of elements in the list, (N−1)(N−1) + (N−2)(N−2) + ... + 1 = (N(N−1))/2 comparisons.
This java program is used to sort the array of integers using selection sorting technique with finding minimum value index to swap with current index value in each iteration.
import java.util.Scanner; public class SelectionSortingTest { // Swaps the min element and current index value. public static void swap(int[] listVals, int minValIndex, int index){ int temp = listVals[minValIndex]; listVals[minValIndex] = listVals[index]; listVals[index] = temp; } public static void selectionSort(int[] listVals){ int numberOfElements = listVals.length; // reduces the each inner iteration loop size by one for(int i=0;i<numberOfElements-1;i++){ // position of minimum element in the list // Assuming first element to be the minimum int minValIndex = i; // finds minimum value position in the list of elements. for(int j=i+1;j<numberOfElements;j++){ if(listVals[j]<listVals[minValIndex]){ minValIndex = j; } } swap(listVals, minValIndex, i); } } public static void main(String[] args){ int[] numberList; Scanner in = new Scanner(System.in); System.out.println("Selection Sorting"); System.out.println("--------------------"); System.out.println("Enter numbers count: "); int count = in.nextInt(); numberList = new int[count]; System.out.println("Enter numbers: "); for (int i=0;i<count;i++){ numberList[i]=in.nextInt(); } in.close(); selectionSort(numberList); System.out.println("Sorted numbers: "); for(int number : numberList){ System.out.print(number+"\t"); } } }Output:
$ javac SelectionSortingTest.java $ java SelectionSortingTest Selection Sorting -------------------- Enter numbers count: 5 Enter numbers: 25 17 35 5 18 Sorted numbers: 5 17 18 25 35
This java program is used to sort the array of integers using selection sorting technique with finding maximum value index to swap with current index value in each iteration.
import java.util.Scanner; public class SelectionSortingTest { // Swaps the max element and current index value. public static void swap(int[] listVals, int maxValIndex, int index){ int temp = listVals[maxValIndex]; listVals[maxValIndex] = listVals[index]; listVals[index] = temp; } public static void selectionSort(int[] listVals){ int numberOfElements = listVals.length; // reduces the each inner iteration loop size by one for(int i=0;i<numberOfElements-1;i++){ // position of maximum element in the list // Assuming first element to be the maximum int maxValIndex = i; // finds maximum value position in the list of elements. for(int j=i+1;j<numberOfElements;j++){ if(listVals[j]<listVals[maxValIndex]){ maxValIndex = j; } } swap(listVals, maxValIndex, i); } } public static void main(String[] args){ int[] numberList; Scanner in = new Scanner(System.in); System.out.println("Selection Sorting"); System.out.println("--------------------"); System.out.println("Enter numbers count: "); int count = in.nextInt(); numberList = new int[count]; System.out.println("Enter numbers: "); for (int i=0;i<count;i++){ numberList[i]=in.nextInt(); } in.close(); selectionSort(numberList); System.out.println("Sorted numbers: "); for(int number : numberList){ System.out.print(number+"\t"); } } }Output:
$ javac SelectionSortingTest.java $ java SelectionSortingTest Selection Sorting -------------------- Enter numbers count: 6 Enter numbers: 24 19 5 34 27 18 Sorted numbers: 5 18 19 24 27 34
Java Tutorial
Privacy Policy | Copyright2020 - All Rights Reserved. | Contact us
| Report website issues in Github
| Facebook page
| Google+ page