-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSelectionSort.java
More file actions
31 lines (29 loc) · 1.13 KB
/
SelectionSort.java
File metadata and controls
31 lines (29 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class SelectionSort {
public static <T extends Comparable<? super T>> void selectionSort(T[] array, int length) {
for (int index = 0; index < length - 1; index++) {
int indexNextSmallest = getIndexSmallest(array, index, length - 1);
swap(array, index, indexNextSmallest);
}
}
private static <T extends Comparable<? super T>> int getIndexSmallest(T[] array, int start, int end) {
T min = array[start];
int indexOfMin = start;
for (int index = start + 1; index <= end; index++) {
if (array[index].compareTo(min) < 0) {
min = array[index];
indexOfMin = index;
System.out.println("In getIndexSmallest");
System.out.println("Current min is :" + min);
SortingDriver.displayCurrent(array);
}
}
return indexOfMin;
}
private static void swap(Object[] array, int a, int b) {
Object temp = array[a];
array[a] = array[b];
array[b] = temp;
System.out.println("In swap");
SortingDriver.displayCurrent(array);
}
}