题目:
输入一个整数数组,实现一个函数来调整该数组中国数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
解法:
快排partition部分的变形
void partition(int *arr, int len) {
if (arr == 0 || len <= 0) return;
int begin = 0;
int end = len - 1;
while (begin < end) {
while (arr[begin] & 0x1 == 1) ++begin;
while (arr[end] & 0x1 == 0) --end;
if (begin < end) {
int tmp = arr[begin];
arr[begin] = arr[end];
arr[end] = tmp;
}
}
}