调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序。
使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。
数据范围
数组长度 [0,100]
数组内元素取值范围 [0,100]
样例
输入:[1,2,3,4,5]
输出: [1,3,5,2,4]
//写个奇偶比较函数,再通过快排实现奇偶排序
int cmp(const void *a, const void *b) {
int num1 = *(int *)a;
int num2 = *(int *)b;
// 奇数按照升序排列
if (num1 % 2 != 0 && num2 % 2 != 0) {
return num1 - num2;
}
// 偶数按照升序排列
else if (num1 % 2 == 0 && num2 % 2 == 0) {
return num1 - num2;
}
// 奇数排在前,偶数排在后
else if (num1 % 2 != 0) {
return -1;
} else {
return 1;
}
}
void reOrderArray(int *array, int length) {
qsort(array, length, sizeof(int), cmp);
}