/* File: SelectionSort.java - March 2011 */ /* Modified - March 2013 */ package l09; import java.util.*; /** * Selection sort (choose minimum remaining element and place it next) * * @author Michael Albert * */ public class SelectionSort implements IntSorter { public void sort(int[] a) { sort(a, 0, a.length); } public String getName() { return "Selection sort"; } public void sort(int[] a, int left, int right) { while (left < right) { ArrayManipulation.swap(a, left, minPosition(a, left, right)); left++; } } public static int minPosition(int[] a, int left, int right) { int result = left; int minValue = a[left]; for(int i = left+1; i < right; i++) { if (a[i] < minValue) { result = i; minValue = a[i]; } } return result; } public static void main(String[] args) { int n = Integer.parseInt(args[0]); int[] a = new int[n]; Random r = new Random(); for(int i = 0; i < a.length; i++) { a[i] = r.nextInt(100); } System.out.println(Arrays.toString(a)); IntSorter s = new SelectionSort(); s.sort(a); System.out.println(Arrays.toString(a)); } }