数组奇偶数分组

来源:互联网 发布:苹果mac下载输入法安装 编辑:程序博客网 时间:2024/05/19 07:43

题目:在一个N个整数数组里面,有多个奇数和偶数,设计一个排序算法,令所有的奇数都在左边。请完成sort的代码实现(C++或Java)

利用快排
一趟快排时候比第一个数大的位于左边,小的位于右边,
于是可以,
奇数位于左边偶数位于右边

#include<iostream>using namespace std;void f(int a[],int left,int right){    int i ,j ,x;    i = left ;j = right ;x = a[left];    while(i<j)    {        while(i<j&&a[j]%2==0)            j--;        a[i] = a[j];        while(i<j&&a[i]%2!=0)            i++;        a[j] =a[i];    }    a[i] = x;}int main(){    int i,a[110],n;    cin >> n;    for( i = 0;i<n;i++)    cin >> a[i];    f(a,0,n-1);    for(i = 0;i<n-1;i++)    cout << a[i] << " " ;    cout << a[i] << endl;    return 0;}
原创粉丝点击