文章
117
粉丝
0
获赞
0
访问
5.5k
元素数尽量平衡:
最大化差值的和:
具体方案:
(2)
#include <stdio.h>
#include <stdlib.h>
void swap(int *a, int i, int j){
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
int partition(int *a, int p, int r) {
int x = a[r];
int i = p - 1;
for (int j = p; j < r; ++j) {
if (a[j] <= x) {
++i;
swap(a, i, j);
}
}
swap(a, i + 1, r);
return i + 1;
}
int randomized_partition(int *a, int p, int r) {
int i = rand() % (r - p + 1) + p; // 随机选一个作为主元
swap(a, r, i);
return partition(a, p, r);
}
...
登录后发布评论
暂无评论,来抢沙发