用数组编写:将一整数数列按奇数在前、偶数在后的顺序重新排放,并要求奇偶数两部分分别有序

辉煌无限 1年前 已收到1个回答 举报

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
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.012 s. - webmaster@yulucn.com