【调整奇数偶数顺序】调整数组使奇数全部都位于偶数前面习题集讲解

简介: 【调整奇数偶数顺序】调整数组使奇数全部都位于偶数前面习题集讲解

题目:

题目名称:

调整奇数偶数顺序

题目内容:

调整数组使奇数全部都位于偶数前面。

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

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

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

分析:

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

2. 循环进行一下操作  

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

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

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

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

代码展示:

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;
    }
  }
}
相关文章
|
11月前
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
146 3
|
搜索推荐 测试技术
对淘宝购物车进行测试用例设计
对淘宝购物车进行测试用例设计
685 0
|
应用服务中间件
2022年最新最详细在IDEA中配置Tomcat(含有详细图解过程)、建立使用IEDA建立一个Web项目的案例
这篇文章提供了在IntelliJ IDEA中配置Tomcat服务器的详细步骤,包括添加Tomcat Server、选择安装路径、添加项目Artifact,以及创建和展示Web项目的流程。
|
JavaScript Java 测试技术
基于微信小程序的小说阅读系统+vue.js附带文章和源代码设计说明文档ppt
基于微信小程序的小说阅读系统+vue.js附带文章和源代码设计说明文档ppt
260 1
7-1 学生成绩排序
7-1 学生成绩排序
164 0
|
数据库 数据安全/隐私保护 C++
[笔记]Windows系统编程《九》Windows服务编程(一)
[笔记]Windows系统编程《九》Windows服务编程
161 0
|
小程序
微信小程序获取iBeacon数据的方法
微信小程序获取iBeacon数据的方法
335 0
|
数据可视化 关系型数据库 MySQL
本地安装并创建MySQL数据库
本地安装并创建MySQL数据库
3532 2
|
C语言
C语言刷题系列——17.计算平均成绩 18.找出总分最高的学生19.通讯录排序(一)
C语言刷题系列——17.计算平均成绩 18.找出总分最高的学生19.通讯录排序(一)
595 0
C语言刷题系列——17.计算平均成绩 18.找出总分最高的学生19.通讯录排序(一)
|
存储 算法 Java
二维最长上升子序列:朴素 DP & 二分 DP(含证明)& 树状数组 DP | Java 刷题打卡
二维最长上升子序列:朴素 DP & 二分 DP(含证明)& 树状数组 DP | Java 刷题打卡