У меня есть задание, в котором я должен реализовать класс, который имеет три метода, предназначенных для выполнения следующего (по порядку):
Поменяйте местами предоставленные ему элементы p1 и p2
Просто выполните сортировку вставкой
Также выполните сортировку вставкой, но верните только данные от начала int до конца int (-1)
Мой класс:
public class ToolBox implements GenericTools{
@Override
public <T> void swap(ArrayList<T> data, int p1, int p2) {
int relic=p1;
p2=p1;
p1=relic;
}
@Override
public <T extends Comparable<T>> void insertionSort(ArrayList<T> data) {
for (int i=1;i<data.size();i++){
T n= data.get(i);
int x=i-1;
while(x>-1){
if (n.compareTo( data.get(i))>0){
break;
}
data.set(x+1,data.get(i));
x--;
}
data.set(x+1,n);
}
}
@Override
public <T extends Comparable<T>> ArrayList<T> insertionSort(ArrayList<T> data, int start, int end) {
for (int i=1;i<data.size();i++){
T n= data.get(i);
int x=i-1;
while(x>-1){
if (n.compareTo( data.get(i))>0){
break;
}
data.set(x+1,data.get(i));
x--;
}
data.set(x+1,n);
}
ArrayList <T> returned=new ArrayList<>();
for (int a=start;a<end;a++){
returned.add(data.get(a));
return returned;
}
Результат, который я получаю:
Fred
Fred
Fred
Fred
Fred
---
Fred
Fred
Fred
---
Fred
Fred
Vs. результат, который я должен получить:
Alice
Bob
Carlos
Fred
Zebra
---
Bob
Carlos
Fred
---
Carlos
Fred