输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
#include <stdio.h>
#include <stdlib.h>
void sort(int *a, int sz)
{
int i = 0;
int j = sz - 1;
for (i = 0; i != j; i++)
{
if (a[i] % 2 != 0)
continue;
else
{
int t = a[i];
a[i] = a[j];
a[j] = t;
if (a[j] % 2 == 0)
j--;
i--;
}
}
}
int main()
{
int a[] = { 1, 2, 7, 6, 4, 3, 8,5 };
int sz = sizeof(a) / sizeof(a[0]);
int i;
sort(a, sz);
for (i = 0; i<sz; i++)
{
printf("%d ", a[i]);
}
system("pause");
return 0;
}
运行结果如下:

本文介绍了一个简单的算法,用于将整数数组中的所有奇数移动到数组的前半部分,而所有偶数移动到后半部分。通过使用双指针技术,此算法能够有效地完成任务,同时减少了不必要的元素移动。
2405

被折叠的 条评论
为什么被折叠?



