Sorting “的数学定义;“部分排序”;

Sorting “的数学定义;“部分排序”;,sorting,math,partial,insertion-sort,Sorting,Math,Partial,Insertion Sort,例如,插入排序被描述为部分排序数组的有效算法。但是如何精确地定义“部分排序”呢?它是一个数组,几乎没有不合适的元素。在不指定百分比或其他阈值的情况下,部分排序和未排序之间没有严格的区别 Robert Sedgewick和Kevin Wayne的正式定义: 更一般地,我们考虑部分排序数组的概念,如下:反转是数组中无序的一对条目。例如,E X A M P L E有11个反转:E-A、X-A、X-M、X-P、X-L、X-E、M-L、M-E、P-L、P-E和L-E。如果一个数组中的反转数小于数组大小的常

例如,插入排序被描述为部分排序数组的有效算法。但是如何精确地定义“部分排序”呢?

它是一个数组,几乎没有不合适的元素。在不指定百分比或其他阈值的情况下,部分排序和未排序之间没有严格的区别

Robert Sedgewick和Kevin Wayne的正式定义:

更一般地,我们考虑部分排序数组的概念,如下:反转是数组中无序的一对条目。例如,E X A M P L E有11个反转:E-A、X-A、X-M、X-P、X-L、X-E、M-L、M-E、P-L、P-E和L-E。如果一个数组中的反转数小于数组大小的常数倍,我们称该数组是部分排序的

的Wikipedia页面对此作出如下规定:

[…]数组A将被部分排序,因为每个元素距离其最终排序位置最多有K个位置。[……]


所以它实际上与数学中所谓的“偏序集”无关?不,我看不出任何联系。在偏序集中,您可能既没有
a
也没有
b
,而在列表中,所有元素都有一个位置。我对“algorthms”中的定义有点困惑。假设我们有一个整数{1,2,3,4,5,6}的有序数组,数组长度为6。如果我们倒序得到{6,5,4,3,2,1},有21个倒数。这是6的常数倍数,是最坏的情况。。我是不是误解了摘录?另外,对于维基百科的定义,如果K=N-1,那么这就证明了任何排序都是正确的。当K值足够大时,部分排序退化为完全未排序。