Appearance
题目
已知由 n(n ≥ 2)个正整数构成的集合 A = {a_k | 0 ≤ k < n},将其划分为两个不相交的子集 A₁ 和 A₂,元素个数分别是 n₁ 和 n₂,A₁ 和 A₂ 中元素之和分别为 S₁ 和 S₂。设计一个尽可能高效的划分算法,满足 |n₁ - n₂| 最小且 |S₁ - S₂| 最大。要求:
(1) 给出算法的基本设计思想。
(2) 根据设计思想,采用 C 或 C++ 语言描述算法,关键之处给出注释。
(3) 说明你所设计算法的时间复杂度和空间复杂度。