題目:
輸入一個(gè)整數(shù)數(shù)組,實(shí)現(xiàn)一個(gè)函數(shù)來(lái)調(diào)整該數(shù)組中國(guó)數(shù)字的順序,使得所有奇數(shù)位于數(shù)組的前半部分,所有偶數(shù)位于數(shù)組的后半部分蜕煌。
解法:
快排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;
}
}
}