Tag: 数据分区

枚举具有N个元素的1d数组的所有k分区?

这似乎是一个简单的请求,但谷歌不是我的朋友,因为“分区”在数据库和文件系统空间中得分很多。 我需要将N个值(N是常数)的数组的所有分区枚举成k个子数组。 子数组就是 – 起始索引和结束索引。 将保留原始数组的整体顺序。 例如,N = 4且k = 2: [ | abcd ] (0, 4) [ a | bcd ] (1, 3) [ ab | cd ] (2, 2) [ abc | d ] (3, 1) [ abcd | ] (4, 0) 并且k = 3: [ | | abcd ] (0, 0, 4) […]

QuickSort和Hoare分区

我很难将QuickSort与Hoare分区转换为C代码,但无法找到原因。 我正在使用的代码如下所示: void QuickSort(int a[],int start,int end) { int q=HoarePartition(a,start,end); if (end x); do i++; while (a[i] < x); if (i < j) swap(&a[i],&a[j]); else return j; } } 另外,我真的不明白为什么HoarePartition有效。 有人可以解释它为什么有效,或者至少把我链接到一篇文章吗? 我已经看到了分区算法的逐步完成,但我没有直观的感觉。 在我的代码中,它似乎甚至没有用。 例如,给定数组 13 19 9 5 12 8 7 4 11 2 6 21 它将使用数据透视表13,但最终会使用数组 6 2 9 5 12 8 7 4 […]