题目:已知数组A[1…n] 的元素类型为整型int,设计一个时间和空间上尽可能高效的算法,将其调整为左右两部分,左边所有元素为奇数,右边所有元素为偶数,不要求对这些元素排序。
代码展示:
#include<stdio.h>
#include<stdlib.h>
/*已知数组A[1…n] 的元素类型为整型int,设计一个时间和空间上尽可能高效的算法,
将其调整为左右两部分,左边所有元素为奇数,右边所有元素为偶数,不要求对这些元素排序。
*/
int main(){
int arr[] = {1,2,4,3,5,6,7,8,9,11,10,12,14,13};
int length = sizeof(arr)/sizeof(int);
int count = 0;
for(int i=0; i<length; i++)
{
if(arr[i]%2==0)
{
count++;
}
else
{
int temp = arr[i-count];
arr[i-count] = arr[i];
arr[i] = temp;
}
}
for(int j=0; j<length; j++)
{
printf("%d ",arr[j]);
}
return 0;
}