Dim*_*ima 13 sorting algorithm
让我们说我们有项目列表,每个项目都有(未知)属性数量.按单个属性排序是一种简单的排序算法.问题是:如何按所有属性对相同的列表排序进行排序?每个属性都有一个权重,所以我们可以先用最不重要的属性排序,然后用更稳定的排序算法等更重要的属性排序,但这显然效率不高.
谢谢.
Lou*_*cci 12
SORT BY A,B,C
Run Code Online (Sandbox Code Playgroud)
您在排序中的比较将:A,B,C从最高到最低的prioerity
这可以通过简单的循环外推到A..n标准.
以上都假设您的比较功能是比较(Element1,Element2)
创建函数f:A1xA2x ..-> R [即根据优先级和属性为每个元素赋值].该函数非常依赖于属性[例如,如果属性值在范围(0,9)内,则给出的值很简单:Sigma[val(i)*10^prio(i)] for each attribute i.
迭代列表,计算函数值,并缓存此函数结果,并根据它进行排序.复杂度将是O(nk + nlogn),其中k是属性的数量,n是元素的数量.