Nicn的刷题日常之调整奇数偶数顺序

目录

1.题目描述

2.解题思路

3.解题


1.题目描述

输入一个整数数组,实现一个函数,

来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,

所有偶数位于数组的后半部分。

2.解题思路

复制代码
1. 给定两个下标left和right,left放在数组的起始位置,right放在数组中最后一个元素的位置
2. 循环进行一下操作
 a. 如果left和right表示的区间[left, right]有效,进行b,否则结束循环
 b. left从前往后找,找到一个偶数后停止
 c. right从后往前找,找到一个奇数后停止
 d. 如果left和right都找到了对应的数据,则交换,继续a,

3.解题

cpp 复制代码
void swap_arr(int arr[], int sz)
{
	int left = 0;
	int right = sz-1;
	int tmp = 0;


	while(left<right)
	{
     // 从前往后,找到一个偶数,找到后停止
		while((left<right)&&(arr[left]%2==1))
		{
			left++;
		}
     
		// 从后往前找,找一个奇数,找到后停止
		while((left<right)&& (arr[right]%2==0))
		{
			right--;
		}
     
     // 如果偶数和奇数都找到,交换这两个数据的位置
     // 然后继续找,直到两个指针相遇
		if(left<right)
		{
			tmp = arr[left];
			arr[left] = arr[right];
			arr[right] = tmp;
		}
	}
}
相关推荐
笨笨饿8 分钟前
#72_聊聊I2C以及他们的变体
linux·c语言·网络·stm32·单片机·算法·个人开发
机器人图像处理8 分钟前
6-自动白平衡(灰度世界算法)
opencv·算法·相机
Dr.Zeus16 分钟前
从电芯到系统:BMS算法视角下的电池热管理深度解析作者署名
算法·能源
ulias21218 分钟前
leetcode热题 - 6
linux·算法·leetcode
北顾笙98019 分钟前
day42-数据结构力扣
数据结构
七颗糖很甜22 分钟前
卫星通信遇到“太空天气”会怎样---电离层闪烁对卫星通信的影响
大数据·python·算法
风筝在晴天搁浅29 分钟前
阿里淘天/京东 CodeTop LeetCode103.二叉树的锯齿形层序遍历
数据结构
小凡子空白在线学习33 分钟前
工作拆分so总结
java·jvm·算法
88号技师34 分钟前
2026年2月新锐一区SCI-完整家庭互动优化算法Undivided Family Interaction Algorithm-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
南境十里·墨染春水1 小时前
linux学习进展 C语言连接mysql
linux·c语言·学习