我试图做一个递归合并和排序功能,我花了几个小时,但我还是很困惑。我查看了一些资源,并找到了答案,但我试图理解的不只是复制粘贴。而且这是家庭作业,似乎会作弊。
我希望有人能尝试给我一些下一步的方向。我编写了一个函数,该函数以递归方式将列表分为几个部分。合并和排序确实让我失望。
import java.util.*;
import java.util.Random;
public class TheEngine {
private static List<Integer> test = new ArrayList<>();
public static void main(String[] args) {
Random rand = new Random();
for(int i = 0; i < 12; i++) {
test.add(rand.nextInt(100));
}
System.out.println(test);
System.out.println(test.size());
splitter(test);
}
public static List<Integer> splitter(List<Integer> list){
int mid = list.size() / 2;
if(list.size() == 1) {
System.out.println(list);
}
else if(list.size() % 2 == 0) {
//TODO: EVEN
splitter(list.subList(0, mid));
splitter(list.subList(mid, list.size()));
}
else if(list.size() % 2 == 1) {
//TODO: ODD
splitter(list.subList(0, mid));
splitter(list.subList(mid, list.size()));
}
return list;
}
}