134得票5回答
Python的sorted()函数是否保证稳定性?

文档没有保证这一点。是否有其他地方有记录呢? 我猜测它可能是稳定的,因为列表上的sort方法保证是稳定的(注释的第9点:“从Python 2.3开始,sort()方法被保证是稳定的”),而sorted在功能上类似。但是,我无法找到任何明确的来源表明如此。 目的:我需要根据主键和次要键进行排...

72得票5回答
不同浏览器中Array.sort()方法的稳定性是什么?

我知道ECMA Script规范并没有指定用于排序数组的算法,也没有指定排序是否应该稳定。 我在这个火狐官方文档中找到了相关信息,说明火狐浏览器使用稳定排序。 有人了解IE 6/7/8、Chrome和Safari的情况吗?

42得票6回答
为什么堆排序不稳定?

我在尝试理解为什么堆排序不稳定。 我已经搜索过了,但没有找到一个好的、直观的解释。 我理解稳定排序的重要性——它允许我们基于多个关键字进行排序,这可能非常有益(即,进行多次排序,每次基于不同的关键字。由于每次排序都会保留元素的相对顺序,因此之前的排序可以累加起来,给出一个按多个标准排序的最终...

35得票6回答
Django: __in查询不会在查询集中保持顺序

我有一系列按特定顺序排列的ID>>> album_ids = [24, 15, 25, 19, 11, 26, 27, 28] >>> albums = Album.objects.filter( id__in=album_ids, published= T...

27得票4回答
计数排序如何保证稳定性?

假设我的输入是 (a,b 和 c 用于区分相等的键)。 1 6a 8 3 6b 0 6c 4 我的计数排序将保存为(丢弃a,b和c信息!!)0(1) 1(1) 3(1) 4(1) 6(3) 8(1) 这将为我提供结果0 1 3 4 6 6 6 8 那么,这个稳定排序是如何实现的呢? 我不确定...

25得票3回答
稳定化标准库中的qsort函数?

我假设stdlib中的经典qsort函数不是稳定的,因为man页面没有提到它。这就是我所说的函数: #include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, in...

19得票2回答
std::stable_sort:如何选择内存优化算法而不是时间优化算法?

我希望使用std::stable_sort。该算法的复杂度为O(N·log^2(N)),其中N=std::distance(first,last)应用了cmp。如果有额外的内存可用,则复杂度为O(N·log(N))。http://en.cppreference.com/w/cpp/algori...

18得票3回答
哪个算法可以使用仅 O(N) 步骤在原地完成稳定的二进制分区?

我正在学习这篇论文:线性时间稳定最小空间划分 它似乎关键的部分在于: 算法B在O(nlog2n)时间和固定额外空间(constant extra space)内稳定排序大小为n的位数组,但仅需O(n)次操作。 然而,该论文并没有描述算法B,只是提及了另一篇我无法访问的论文。虽然我...

10得票4回答
将稳定排序添加到 TList 和 TStringList 的简便方法

我经常使用 TList/TObjectList 和 TStringList(带有相关对象),用于各种任务,有时直接使用它们,有时作为更复杂结构的基础。虽然排序功能通常足够好,但我有时需要进行稳定排序,而这两个列表都使用快速排序。 有没有简单的方法实现 TList 和/或 TStringLis...

7得票1回答
`predsort/3`的可能行为

这是关于在Prolog中按特定参数对项进行排序而不创建新列表keysort的问题的一个答案后续。 假设我们希望predsort/3的行为与sort/2完全相同:如果我理解正确,这意味着将其调用为: ?- predsort(compare, List, Sorted). 现在假设我们想要...