Reputation: 333
I'm trying to sort an array of numbers using Selectionsort and generics and I'm feeling lost. I have an Interface with public T[] sort and public void swap. What do I have to fix to return a sorted array of integers?
My code is:
package sorting;
import java.lang.reflect.Array;
public class Selectionsort<T extends Comparable<T>> implements
ISelectionsort<T> {
private T[] array;
@Override
public T[] sort(T[] array) {
for (int i = 0; i < array.length; i++) {
int k = i;
for (int j = 0; j < array.length; j++) {
if ((array[j].compareTo(array[k]) == -1))
k = j;
}
if (k != i)
swap(array, i, k);
}
return null;
}
@Override
public void swap(T[] array, int i, int j) {
T tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
public static void main(String[] args) {
Selectionsort<Integer> ss = new Selectionsort<Integer>();
Integer[] array = { 4, 2, 9, 8 };
System.out.println(ss.sort(array));
}
}
Upvotes: 0
Views: 141
Reputation: 7854
start j
from k
:
for (int j = k; j < array.length; j++) {
return the same arary:
return array;
and print like :
ss.sort(array);
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
Upvotes: 2