Java ArrayLink列表插入排序
我必须做一个数组列表来进行插入排序,我的老师把这个给了我,给了我一个F,但说我可以在周五之前补上。 我不明白为什么这不是A.L插入排序。 有人能帮我解决这个问题,让它符合他的标准吗? 谢谢 他说, 在检查了第一次插入排序之后,所有人都做得不正确。我特别说过要移动数字并将数字移动到适当的位置,而不是将数字交换到适当的位置。在MySA的作业中,我说如果你这样做,你的作业将得到0分Java ArrayLink列表插入排序,java,sorting,arraylist,insertion-sort,Java,Sorting,Arraylist,Insertion Sort,我必须做一个数组列表来进行插入排序,我的老师把这个给了我,给了我一个F,但说我可以在周五之前补上。 我不明白为什么这不是A.L插入排序。 有人能帮我解决这个问题,让它符合他的标准吗? 谢谢 他说, 在检查了第一次插入排序之后,所有人都做得不正确。我特别说过要移动数字并将数字移动到适当的位置,而不是将数字交换到适当的位置。在MySA的作业中,我说如果你这样做,你的作业将得到0分 import java.util.ArrayList; public class AListINSSORT {
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);
}
}
import java.util.ArrayList;
公共类AlistinSort{
专用静态void insertionSort(ArrayList arr){
insertionSort();
}
私有静态void insertionSort(){
ArrayList swap=新的ArrayList();
增加(1);
增加(2);
增加(3);
增加(4);
增加(5);
int-prior=0;
int后者=0;
对于(inti=2;i-prior&(swap.get(k-1)
首先,您的老师似乎要求您使用LinkedList而不是ArrayList。他们之间有很大的不同
第二,也许更切题。在您的内部循环中,您保存了一个temp变量,并将位置k-2和k-1处的元素相互交换。从评论来看,这不是你老师的意图。由于他希望您解决元素插入的问题,我建议您查看LinkedList.add(inti,ee)的以下方法定义:
这应该为您指明了正确的方向。首先,您的老师似乎要求您使用LinkedList而不是ArrayList。他们之间有很大的不同 第二,也许更切题。在您的内部循环中,您保存了一个temp变量,并将位置k-2和k-1处的元素相互交换。从评论来看,这不是你老师的意图。由于他希望您解决元素插入的问题,我建议您查看LinkedList.add(inti,ee)的以下方法定义:
这将为您指明正确的方向。在我看来,您的代码根本不起作用。 外for循环的条件
for (int i = 2; i <= latter; i++)
for(inti=2;i据我所知,您的代码根本不起任何作用。
外for循环的条件
for (int i = 2; i <= latter; i++)
for(inti=2;i这里有很多错误
首先,你的方法:
private static void insertionSort(ArrayList<Integer> arr) {
insertionSort();
}
这里有很多问题
首先,你的方法:
private static void insertionSort(ArrayList<Integer> arr) {
insertionSort();
}
完全忽略其参数的insertionSort(ArrayList arr)
方法有什么意义?它永远不会进入循环。完全忽略其参数的insertionSort(ArrayList arr)
方法有什么意义?它永远不会进入循环。关于“不将数字交换到位”,我认为你想做得对。你的两个for循环看起来好像你想插入数字而不是交换。也许,你的老师只是被你列表的名称swap
弄糊涂了。所以,考虑一下重命名它。关于“不交换数字”,我认为你想做得对。你的两个for循环看起来好像你想插入数字而不是交换。也许,你的老师只是被你列表的名称swap
弄糊涂了。所以,考虑一下重命名它。