题目:

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

知识点:

  • 保证相对位置不变,则只能顺次移动或相邻交换

注意:

代码实现:

定义2个指针i,j,i在数组中从头依次寻找偶数,j寻找i之后最近的奇数,找到后将第j个元素赋值给i,将原i~j-1个元素向后移动一位;至j遍历到数组最后一个元素时,跳出。

/*数组奇偶排序*/
//判断是否为奇数
bool isOdd(int a) {if (a & 1 == 1) {return true;}return false;
}
void reOrderArray(vector<int> &array) {int i = 0, j;//循环,当i=array的长度时退出while (i < array.size()) {//i用来找偶数while (i < array.size() && isOdd(array[i])) {++i;}//j用来找奇数j = i + 1;while (j < array.size() && !isOdd(array[j])) {++j;}if (j < array.size()) {//将array[j]插入到array[i],array[i,j-1]整体后移int temp = array[j];for (int a = j; a > i; a--) {array[a] = array[a - 1];}array[i++] = temp;}else {break;}}
}int main()
{   vector<int> array;for (int i = 1; i < 6; i++) {array.push_back(i);}reOrderArray(array);for (int i = 0; i < array.size(); i++) {cout << array[i] << endl;}getchar();return 0;
}

剑指offer——21.调整数组顺序使奇数位于偶数前面相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java

    <LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...

  2. 【LeetCode】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

    [LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 文章目录 [LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 一.双指针 一.双指针 解题思路: ...

  3. 【双100%解法】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

    立志用最少的代码做最高效的表达 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4] 输 ...

  4. Leetcode 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 (每日一题 20210917)

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分.示例:输入:nums = [1,2,3,4] 输出:[1,3,2,4] 注:[3,1 ...

  5. 【算法】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

    文章目录 1.概述 2,双指针 1.概述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分. 示例: 输入:nums = [1,2,3,4 ...

  6. 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 (快速排序partion操作应用)

    借助一个额外的空间,空间复杂度O(N), 时间复杂度O(1) 快速排序partion操作,空间O(1),  不稳定 冒泡排序,O(n^2), 空间O(1) class Solution { publi ...

  7. LeetCode-剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

    剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 思路一:使用快慢双指针 1: i找偶数找到了,继续往下执行,找不到i++ 2:j找奇数,找到了继续往下执行,找不到j– 3:最后交换 clas ...

  8. 剑指Offer #13 调整数组顺序使奇数位于偶数前面 | 图文详解

    题目来源:牛客网-剑指Offer专题 题目地址:调整数组顺序使奇数位于偶数前面 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的 ...

  9. 《剑指offer》-- 调整数组顺序使奇数位于偶数前面、顺时针打印矩阵、数字在排序数组中出现的次数

    一.调整数组顺序使奇数位于偶数前面: 1.题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之 ...

最新文章

  1. 关于Hibernate中No row with the given identifier exists问题的原因及解决
  2. how SAP CRM settype structure names are determined
  3. Oracle分析函数-keep(dense_rank first/last)
  4. python内置函数 pdf_关于Python巧妙而强大的内置函数
  5. PS把一张白色背景的图片设为透明
  6. andriod studio 运行 无结果_无负压静音供水设备下篇一
  7. 看完后,别再说自己不懂用户画像了
  8. TensorFlow笔记(10) CheckPoint
  9. linux环境下安装curl,Linux环境下curl安装和移植
  10. 全自动高清录播服务器,全自动高清录播服务器 高清录播系统
  11. uni-app实现问卷调查试卷
  12. memcached的安装
  13. 【高德地图POI踩坑】AMap.PlaceSearch无法使用
  14. Hyperledger Fabric 链码生命周期
  15. 等保2.0测评综合得分计算
  16. 邮件服务器域名怎么查看,如何查看企业邮箱是哪里的域名
  17. Android基于红米系列手机读取本地图片路径失败的解决方案
  18. 快速了解什么是CDN
  19. 安装apk报错“解析包时出现问题”
  20. P R MAP简单理解,yolo中

热门文章

  1. Kuberentes-入门
  2. 题解【luogu P2421 bzoj P1407 [NOI2002]荒岛野人】
  3. android摄像头的autoFocus-----循环自动聚焦的实现
  4. 18000 Two String 暴力。——— 读题
  5. 【CSWS2014 Main Conference】Some Posters
  6. 24个坏行为让你身体越来越丑
  7. 【Java 集合】ArrayList、LinkedList、Stack、Queue、Set、Map, 迭代器 Iterable、Iterator,Collections类
  8. 【Python笔记】使用 re 模块实现正则表达式操作
  9. 索引书单(持续更新中)
  10. 软件设计师17-网络基础知识