相关疑难解决方法(0)

如何使用合并排序算法进行就地排序?

我知道问题不是太具体.

我想要的只是告诉我如何将普通合并排序转换为就地合并排序(或具有恒定额外空间开销的合并排序).

我所能找到的(网上)是"太复杂"或"超出本文范围"的网页.

唯一已知的就地合并方式(没有任何额外空间)太复杂,无法简化为实际程序.(取自这里)

即使它太复杂,如何使合并排序到位的基本概念是什么?

arrays sorting algorithm mergesort in-place

229
推荐指数
7
解决办法
14万
查看次数

何时使用每种排序算法?

当特定排序算法优于其他排序算法时,有什么用例 - __CODE__vs __CODE__vs __CODE__vs __CODE__等?

是否有基于数据结构的大小,类型,可用内存和缓存以及CPU性能使用它们的建议指南?

sorting algorithm

157
推荐指数
3
解决办法
10万
查看次数

Quicksort vs heapsort

quicksort和heapsort都进行就地排序.哪个更好?什么是首选的应用程序和案例?

sorting algorithm quicksort heapsort

79
推荐指数
4
解决办法
7万
查看次数

Quackort优于Heap Sort

堆排序具有最差的情况复杂性,O(nlogn)而Quicksort O(n^2).但是,经验证据表明,快速排序是优越的.这是为什么?

sorting algorithm big-o quicksort heapsort

37
推荐指数
3
解决办法
2万
查看次数

如果你反转按升序排序的对象列表,你会得到降序吗?

考虑使用PojoObject 的以下列表:

List<Pojo> list = new ArrayList<>();
....
class Pojo {
    private int field1;
    private int field2;
    ...
}
Run Code Online (Sandbox Code Playgroud)

注意: Pojo可以有两个以上的字段

Pojo-s按升序排序我的列表:

Collections.sort(list, new Comparator<Pojo>() {

    @Override
    public int compare(Pojo o1, Pojo o2) {
        int fieldCompareTo = compare(o1.field1, o2.field1);

            if (fieldCompareTo == 0) {
                fieldCompareTo = compare(o1.field2, o2.field2);

            }
            return fieldCompareTo;
        }
    });

private static int compare(int a, int b) {
    return a < b ? -1
         : a > b ? 1
         : 0;
} …
Run Code Online (Sandbox Code Playgroud)

java sorting

2
推荐指数
1
解决办法
319
查看次数

标签 统计

sorting ×5

algorithm ×4

heapsort ×2

quicksort ×2

arrays ×1

big-o ×1

in-place ×1

java ×1

mergesort ×1