当前位置: 首页 > news >正文

【C语言经典例题】调整数组使奇数全部都位于偶数前面

目录

一、题目要求

二、解题思路

分步解析

从前往后找

从后往前找

交换

三、完整代码演示


一、题目要求

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

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

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

二、解题思路

1. 给定两个下标left和right,left放在数组的起始位置,right放在数组中最后一个元素的位置

2. 循环进行一下操作

  a. 如果left和right表示的区间[left, right]有效,进行b,否则结束循环

  b. left从前往后找,找到一个偶数后停止

  c. right从后往前找,找到一个奇数后停止

  d. 如果left和right都找到了对应的数据,则交换,继续a

分步解析

详细的解析都在下面代码的注释中了,大家往下接着看就好了

从前往后找

	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;}

三、完整代码演示

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;}}
}

以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!

相关文章:

【C语言经典例题】调整数组使奇数全部都位于偶数前面

目录 一、题目要求 二、解题思路 分步解析 从前往后找 从后往前找 交换 三、完整代码演示 一、题目要求 输入一个整数数组&#xff0c;实现一个函数&#xff0c; 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分&#xff0c; 所有偶数位于数组的后半…...

C++经典20题型,满满知识,看这一篇就够了(含答案)

今天找了20道c的经典题型&#xff0c;看这一篇就够了&#xff0c;全是干货 目录 1、题目&#xff1a;有一对兔子&#xff0c;从出生后第3个月起每个月都生一对兔子&#xff0c;小兔子长到第三个月后每个月又生一对兔子&#xff0c;假如兔子都不死&#xff0c;问每个月的兔子总…...

卷积神经网络CNN之ZF Net网络模型详解(理论篇)

1.背景 2. ZF Net模型结构 3. 改进优缺点 一、背景 ZF Net是用作者的名字命名的&#xff0c;Matthew D.Zeiler 和 Rob Fergus &#xff08;纽约大学&#xff09;&#xff0c;2013年撰写的论文&#xff1b; 论文原网址https://arxiv.org/abs/1311.2901 论文名&#xff1a;Vis…...

Vue 3.0 响应性 基础 【Vue3 从零开始】

#声明响应式状态 要为 JavaScript 对象创建响应式状态&#xff0c;可以使用 reactive 方法&#xff1a; import { reactive } from vue// 响应式状态const state reactive({count: 0}) reactive 相当于 Vue 2.x 中的 Vue.observable() API &#xff0c;为避免与 RxJS 中的 ob…...

flex布局方式让最后一个(或第二个...n)元素居右显示

<div class"round"> <div class"income">收入</div> <div class"center"> <img style"width: 12px" src"../../img/big/up.png"> </div> <div class"rg"> <span cl…...

【Python语言基础】——Python MySQL Order By

Python语言基础——Python MySQL Order By 文章目录 Python语言基础——Python MySQL Order By一、Python MySQL Order By一、Python MySQL Order By 结果排序 请使用 ORDER BY 语句按升序或降序对结果进行排序。 ORDER BY 关键字默认按升序对结果进行排序。若要按降序对结果进…...

自然数学的哲学原理--复数理论的扩展

自然数学的哲学原理--复数理论的扩展 2023-03-05 10:27:12 自然数学的哲学原理--复数理论的扩展 一维&#xff1a;线&#xff0c;实数 二维&#xff1a;平面 三维&#xff1a;立体 四维&#xff1a;相对论时空 复数&#xff0c;以一个数对形式表示&#xff0c;实现了复平面的…...

tsconfig.json中的一些配置

compilerOptions 编译选项是配置文件中非常重要也比较复杂的配置选项 target&#xff1a;设置ts代码编译的目标版本 可选值&#xff1a; ES3&#xff08;默认&#xff09;、ES5、ES6/ES2015、ES7/ES2016、ES2017、ES2018、ES2019、ES2020、 ESNext 示例&#xff1a; &quo…...

Spark调优总结

下面是基于官方优化建议&#xff0c;加上自己的一些理解整理。官方地址&#xff1a;https://spark.apache.org/docs/2.4.8/tuning.html 任务并行度 Spark会根据每个文件的大小自动设置运行“map”任务的数量&#xff0c;而对于分布式的“reduce”操作&#xff0c;例如groupBy…...

4.创建和加入通道相关(network.sh脚本createChannel函数分析)[fabric2.2]

fabric的test-network例子有一个orderer组织、两个peer组织、每个组织一个节点&#xff0c;只有系统通道&#xff08;system-channel&#xff09;&#xff0c;没有其他应用通道。我们可以使用./network.sh createChannel命令来创建一个名为mychannel的应用通道。 一、主要概念 …...

若依学习(前后端分离版)——自定义注解@Log(如何自定义注解,实现aop)

如何自定义注解 aop的基本知识与应用 若依对用户的一些更新删除等敏感操作操作进行了日志记录 注解定义和切面处理的项目位置 第一步&#xff1a;自定义注解log 定义了注解的相关信息。这里定义的属性可以在使用时加以定义 注解Target和Retention的作用 第二步切面逻辑…...

防止暴力破解ssh的四种方法

一. 方法介绍 防止暴力破解的四种方法&#xff1a; 1 密码要写的足够的复杂&#xff0c;通常建议将密码写16位&#xff0c;并且无连贯的数字或者字母&#xff1b;当然也可以固定一个时间修改一次密码&#xff0c;推荐是一个月修改一次会稳妥一些2 修改ssh的端口号&#xff0c;…...

jsp试卷分析管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP试卷分析管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…...

可选链运算符(?.)与空值合并运算符(??)

1. 可选链运算符Optional chaining(?.) MDN定义 可选链运算符&#xff08;?.&#xff09;允许读取位于连接对象链深处的属性的值&#xff0c;而不必明确验证链中的每个引用是否有效。?. 运算符的功能类似于 . 链式运算符&#xff0c;不同之处在于&#xff0c;在引用为空 (n…...

JavaScript 闭包

JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。全局变量函数可以访问函数内部定义的变量&#xff0c;如&#xff1a;实例function myFunction() {var a 4;return a * a;}尝试一下 函数也可以访问函数外部定义的变量&#xff0c;如&#xff1a;实例var a 4…...

每日记录自己的Android项目(二)—Viewbinding,WebView,Navigation

今日想法今天是想把做一个跳转页面的时候调到H5页面去&#xff0c;但是这个页面我用app来承载&#xff0c;不要调到浏览器去。所以用到了下方三个东西。Viewbindingbuild.gradle配置首先在app模块的build.gradle里添加一下代码默认情况下&#xff0c;每一个布局xml文件都会生成…...

20230305英语学习

Climate Change Is Suffocating Large Parts of the Ocean 研究&#xff1a;气候变化正在使海洋“缺氧” One day more than a decade ago, Eric Prince was studying the tracks of tagged fish when he noticed something odd.Blue marlin off the southeastern United State…...

【Linux】手把手教你在CentOS上使用docker 安装MySQL8.0

文章目录前言一. docker的安装1.1 从阿里下载repo镜像1.2 安装docker1.3 启动docker并查看版本二. 使用docker安装MySQL8.02.1 拉取MySQL镜像2.2 创建容器2.3 操作MySQL容器2.4 远程登录测试总结前言 大家好&#xff0c;又见面了&#xff0c;我是沐风晓月&#xff0c;本文主要…...

论文解读:High Dynamic Range and Super-Resolution from Raw Image Bursts

论文解读&#xff1a;High Dynamic Range and Super-Resolution from Raw Image Bursts 今天介绍一篇发表于 2022 年 ACM Tranaction on Graphic 上的文章&#xff0c;这篇文章通过多帧曝光将 HDR 与 SR 放在一起解决&#xff0c;与一般的文章不同的地方在于&#xff0c;这篇文…...

国内的PMP考试通过率高达97%?

自认为是虚高&#xff0c;虽然国人在考试方面的确独树一帜的强&#xff0c;应该也没有这样夸张。 如果自学&#xff0c;大概是50%&#xff0c;如果有老师教&#xff0c;那大概是60%到80%&#xff0c;还是比较高的。 为什么自学那么低&#xff1f;除了自身的自制力的问题&…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...