实现将一个数组中的所有奇数放到数组前部分,偶数放到数组后部分
【实现将一个数组中的所有奇数放到数组前部分,偶数放到数组后部分】如题:
利用数组的左右指针,从两端往中间遍历数组,若左指针遇到偶数,右指针遇到奇数则奇偶交换,知道左右指针不能移动位置
#include
#include
void swap(int* left, int* right)//方法一
{
while (left < right)
{
if ((*left) % 2 == 1)
{
left++;
}
if ((*right) % 2 == 0)
{
right--;
}
else
{
int temp = 0;
temp = *left;
*left = *right;
*right = temp;
}
}
}
void swap1(int* left, int* right)//方法二
{
while (left < right) {
while ((*left) % 2 == 1)
{
left++;
}
while ((*right) % 2 == 0)
{
right--;
}
while (left < right)
{
int temp = 0;
temp = *left;
*left = *right;
*right = temp;
}
}
}
void print(int* arr,int len)
{
int i = 0;
for ( i = 0;
i < len;
i++)
{
printf("%3d", arr[i]);
}
}
int main()
{
int arr[] = { 1,6,5,2,7,8,10,4,9 };
int len = sizeof(arr) / sizeof(arr[0]);
//swap(arr, arr + len - 1);
swap1(arr, arr + len - 1);
print(arr, len);
}
注释:当数组全为奇数或偶数时,应加上约束条件left
推荐阅读
- 一个人的旅行,三亚
- 一个小故事,我的思考。
- 一个人的碎碎念
- 七年之痒之后
- 我从来不做坏事
- 异地恋中,逐渐适应一个人到底意味着什么()
- 迷失的世界(二十七)
- live|live to inspire 一个普通上班族的流水账0723
- 遗憾是生活的常态,但孝顺这件事,我希望每一个人都不留遗憾
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式