调整数组使奇数全部都位于偶数前面。

来源:互联网 发布:js判断数组拼接 编辑:程序博客网 时间:2024/05/17 04:51

输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分

//这里使用了按位与
a&a=1;
a&0=0;

void swap(int *x, int *y){    *x ^= *y;    *y ^= *x;    *x ^= *y;}void JO_switch(int a[], int sz){    int start = 0;    int end = sz - 1;    while (start < end)    {        if (!(a[start] & 1) && (a[end] & 1))//奇偶交换        {            swap(a+start,a+end);            start++,end--;            continue;        }        if ((a[start] & 1))//奇数        {            start++;        }         if (!(a[end] & 1))//偶数        {            end--;        }    }}void print(int a[], int sz){    int i = 0;    for (i=0; i < sz; i++)    {        printf("%d ", a[i]);    }    printf("\n");}int main(){    int a[] = { 1,2,3,4,5,6};    int sz = sizeof(a) / sizeof(a[0]);    print(a, sz);    JO_switch(a, sz);    print(a, sz);    system("pause");    return 0;}
原创粉丝点击