【发布时间】:2016-01-27 14:06:35
【问题描述】:
我必须为插入排序做一个数组列表,我的老师把这个发回给我,给了我一个 F,但说我可以在星期五之前完成。 我不明白为什么这不是 A.L 插入排序。 有人可以帮我解决这个问题,使其符合他的标准吗? 谢谢。
他说:
检查您的第一个插入排序后,您都做错了。我特别说过要移动数字并将数字移动到适当的位置,而不是将数字交换到适当的位置。在 MySA 的作业中,我说过如果你这样做,你的作业会得到 0。
import java.util.ArrayList;
public class AListINSSORT {
private static void insertionSort(ArrayList<Integer> arr) {
insertionSort();
}
private static void insertionSort() {
ArrayList<Integer> swap = new ArrayList<Integer>();
swap.add(1);
swap.add(2);
swap.add(3);
swap.add(4);
swap.add(5);
int prior = 0;
int latter = 0;
for (int i = 2; i <= latter; i++)
{
for (int k = i; k > prior && (swap.get(k - 1) < swap.get(k - 2)); k--)
{
Integer temp = swap.get(k - 2);
swap.set(k - 2, swap.get(k - 1));
swap.set(k - 1, temp);
}
}
System.out.println(swap);
}
}
【问题讨论】:
-
完全忽略其论点的
insertionSort(ArrayList<Integer> arr)方法的意义何在? -
它永远不会进入你的循环。
标签: java sorting arraylist insertion-sort