数组元素移动(奇左偶右)

调整输入数组A[0..n],将其分为两部分,左边所有元素为奇数,右边所有元素为偶数
【样例输入】1 2 33 8 5
【样例输出】1 33 5 2 8

供参考:

#include <stdio.h>
int main()
{
    int a[50], n, i, j, t;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);
    for (i = n - 1; i > 0; i--)
        for (j = 0; j < i; j++)
            if (a[j] % 2 == 0 && a[j + 1] % 2 == 1)
                t = a[j], a[j] = a[j + 1], a[j + 1] = t;
    for (i = 0; i < n; i++)
        printf("%d ", a[i]);
    return 0;
}

冒泡排序学过吗
只要发现左边是偶数,右边是奇数,就交换

可以使用双指针法,用left和right模拟指针移动,具体可借鉴以下代码

img