奇数在左偶数在右

来源:互联网 发布:数控拉料器怎么编程 编辑:程序博客网 时间:2024/04/28 20:45

要求:

给定一个数列A,试将其变为奇数在左偶数在右的形式。例如A=[12,8,7,5,6,11],则变换后的A'=[11,5,7,8,6,12]
只需要先奇数后偶数即可,不需要排序。

实现代码:

/**给定一个数列A,试将其变为奇数在左偶数在右的形式。*例如A=[12,8,7,5,6,11],则变换后的A'=[11,5,7,8,6,12]*只需要先奇数后偶数即可,不需要排序。*/#include <stdio.h>#include <stdlib.h>void change(int a[],int len){    int low=0;    int high=len-1;    while (low < high)    {        while (low < high && a[high] % 2 == 0)        {            high--;        }        while (low < high && a[low] % 2 != 0)        {            low++;        }        if (low < high)        {            int tem = a[low];            a[low] = a[high];            a[high] = tem;        }    }}int main(){    int array[]={12,8,7,5,6,11};    change(array,6);    int i;    for(i=0;i<6;i++)    {        printf("%5d",array[i]);    }    printf("\n");    system("pause");    return 0;}

运行结果:


原创粉丝点击