hcy7077
幼苗
共回答了18个问题采纳率:100% 举报
那就直接用排序算法吧,因为要求有序,所以时间复杂度不会比排序本身更快.
排序的比较函数为:先比较奇偶性,一个奇数一个偶数,则返回奇数在前.若奇偶性相同,则返回他们的本来次序
例:
#include
using std::cout;
using std::endl;
#include
bool _cmp(int a, int b) {
x09int ap = a % 2, bp = b % 2;
x09return ap == bp ? a < b : bp == 0;
}
int main() {
x09int array[] = { 8, 7, 6, 5, 4, 3, 2, 1, };
x09std::sort(array, array + 8, _cmp);
x09for (int i = 0; i != 8; ++i)
x09x09cout
1年前
9