java - ArrayLinkedList 插入排序

标签 java sorting arraylist insertion-sort

我必须做一个数组列表来进行插入排序,我的老师把它发回给我并给了我一个 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);
    }
 }

最佳答案

首先,你的老师似乎要求你使用 LinkedList 而不是 ArrayList。他们之间有很大的区别。

其次,也许更重要。在内部循环中,您保存一个临时变量并交换位置 k - 2 和 k - 1 处的元素。从评论来看,这不是你老师的本意。既然他想让你解决元素插入的问题,我建议你看下面LinkedList.add(int i, E e)的方法定义:https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html#add(int,%20E)

这应该为您指明正确的方向。

关于java - ArrayLinkedList 插入排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35039552/

相关文章:

java - rich :datatable 中的默认排序列

java - 为什么 Java 中的 PriorityBlockingQueue 排序不正确?

Java 突然停止写入 ArrayList

java - Arraylist 对所有数组位置中的所有行获取相同的值

java - Selenium 隐式超时停止工作

java - Android studio 中的首选项设置如何将 EditTextPreference 中的值连接到 TextView

javascript - 按升序排列天数

java - 使用 ArrayList 的 ArrayAdapter

java - 如何在 Eclipse 中使用条件断点?

java - 如何将 AIResponse gson 转换为可在 Text to Speech 上使用的文本?