1 package Algorithms; 2 3 import java.util.ArrayList; 4 import java.util.Scanner; 5 6 public class SelectionSort { 7 public static void main(String [] args) { 8 // Read some numbers from the user and store them in a list 9 ArrayList<Integer> numbers = readNumbersFromOutput(); 10 11 // Echo Check 12 System.out.println("Unsorted List:" + numbers); 13 // sort the list 14 sort(numbers); 15 16 // Display it 17 System.out.println("Sorted list:" + numbers); 18 } 19 20 private static ArrayList<Integer> readNumbersFromOutput() { 21 // Store numbers 22 ArrayList<Integer>numbers= new ArrayList<>(); 23 24 //Prepare to read numbers 25 Scanner scanner= new Scanner(System.in); 26 System.out.println("Enter some positive integers"+ "followed by a negative number"); 27 28 // Read and store 29 Integer readnumbers= scanner.nextInt(); 30 31 while(readnumbers>0) { 32 numbers.add(readnumbers); 33 readnumbers = scanner.nextInt(); 34 } 35 return numbers; 36 } 37 38 private static Integer MaxValue(ArrayList<Integer>numbers) { 39 //Intial champion 40 Integer champion = numbers.get(0); 41 // Look at each element as the challanger, and if the challenger is > champion, then replace 42 43 for (Integer challanger : numbers) { 44 if (challanger > champion) { 45 champion = challanger; 46 } 47 } 48 return champion; 49 } 50 private static void sort(ArrayList<Integer>numbers){ 51 for (int limit= numbers.size()-1;limit>=1;limit-- ){ 52 int mx = maxIndex(numbers, limit); 53 swap(numbers, mx, limit); 54 // Find the index of max value 55 56 57 } 58 } 59 private static Integer maxIndex(ArrayList<Integer>numbers, int limit){ 60 Integer champion= numbers.get(0); 61 int cx=0;// champion index 62 for(int i=0; i<=limit; i++){ 63 Integer challanger = numbers.get(i); 64 if(challanger> champion){ 65 champion= challanger; 66 cx=1; 67 } 68 } 69 return cx; 70 } 71 private static void swap(ArrayList<Integer>numbers,int mx, int x){ 72 int temp= numbers.get(mx); 73 numbers.set(mx,numbers.get(x)); 74 numbers.set(x, temp); 75 } 76 } 77