- List item
算法思想:
采用一趟快速排序的思想,操作过程如下:
① 设置头指针和尾指针,头指针从前往后移动,尾指针从后往前移动;
② 头指针遇到第一个偶数和尾指针遇到的第一个奇数交换;
③ 重复步骤①、②,直到头、尾指针相遇。
算法代码:
#include<bits/stdc++.h>
using namespace std;
void move(int a[],int n){
int f=0,r=n-1,temp=0;
while(f<r){
while(a[f]%2!=0) f++;
while(a[r]%2==0) r--;
if(f<r){
temp=a[f];
a[f]=a[r];
a[r]=temp;
}
}
}
int main(){
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
move(a,n);
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}