我试图在java中创建自己的单链表,然后用它来执行排序。 我只能访问第一个节点,而 next 是用于指向下一个节点的指针。 每个节点包含2个字段x和y,它们都是整数。 如何在不使用内置方法的情况下将元素添加到链接列表,并使用快速排序或合并排序对它们进行排序?
答案 0 :(得分:1)
如何在不使用内置方法的情况下将元素添加到链接列表,并使用快速排序或合并排序对它们进行排序?
快速算法(如quicksort和mergesort)取决于是否能够>> index<<被排序的元素数组;即在像a[i] = a[j]
这样的操作序列中。使用链表意味着随机索引将是O(N)
操作。这可能会将O(N log N)
算法转换为O(N^2 log N)
算法。
如果你看一下Java的内置排序方法(在不同版本的Java中),你会发现LinkedList
的排序是通过以下方式完成的:
这是对大型链表进行排序的最有效方法。