数组中的奇数排在偶数组前面
题目1:
单纯的使得奇数在前,偶数在后,不考虑相对位置
解题思路:
利用两个指针:
第一个从左到右,第二个从右到左;
当第一个指向偶数且第二个指向奇数时,交换位置。
#include<iostream>
#include<vector>
#include<windows.h>using namespace std;void reOrderArray(vector<int> &myarray)
{//使用类似于快速排序的方法int left, right;left = 0;right = myarray.size()-1;while(left<right){while(left<right&&(myarray[left]%2!=0)) //左边的为偶数时停下来left++;while(left<right&&(myarray[right]%2==0)) //右边的为奇数时停下来right--;if(left<right){int temp=myarray[left];myarray[left]=myarray[right];myarray[right]=temp;}left++;right--;}
}void Print(vector<int> &myarray)
{int num=myarray.size();for(int i=0; i<num;i++)cout<<myarray[i]<<" ";cout<<endl;return;
}int main()
{int arr[]={1,2,3,4,5,5,4,6,7,8,9};int num=sizeof(arr)/sizeof(int);vector<int> vec;for(int i=0;i<num;i++){vec.push_back(arr[i]);}cout<<"转换前:"<<endl;Print(vec);reOrderArray(vec);cout<<"转换后:"<<endl;Print(vec);system("pause");return 0;
}
运行结果:
转换前:
1 2 3 4 5 5 4 6 7 8 9
转换后:
1 9 3 7 5 5 4 6 4 8 2
请按任意键继续. . .
题目2:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
解题思路:
创建同样大的数组,把原数组遍历2遍,第一遍取出奇数放到新数组中,第二遍取出偶数放到新数组中
#include<iostream>
#include<vector>
#include<windows.h>using namespace std;void reOrderArray(vector<int> &myarray)
{vector<int> myarray2;for(int i=0;i<myarray.size();i++){if(myarray[i]%2!=0)myarray2.push_back(myarray[i]);}for(int i=0;i<myarray.size();i++){if(myarray[i]%2==0)myarray2.push_back(myarray[i]);}myarray.clear();for(int i=0;i<myarray2.size();i++)myarray.push_back(myarray2[i]);
}void Print(vector<int> &myarray)
{int num=myarray.size();for(int i=0; i<num;i++)cout<<myarray[i]<<" ";cout<<endl;return;
}int main()
{int arr[]={1,2,3,4,5,5,4,6,7,8,9};int num=sizeof(arr)/sizeof(int);vector<int> vec;for(int i=0;i<num;i++){vec.push_back(arr[i]);}cout<<"转换前:"<<endl;Print(vec);reOrderArray(vec);cout<<"转换后:"<<endl;Print(vec);system("pause");return 0;
}
运行结果:
转换前:
1 2 3 4 5 5 4 6 7 8 9
转换后:
1 3 5 5 7 9 2 4 4 6 8
请按任意键继续. . .
数组中的奇数排在偶数组前面相关推荐
- java奇数偶数数组_在Java数组中将数组中的奇数置后偶数置前(两种不同的方法实现)...
问题:数组中将奇数置后偶数置前 解决思路: 方法1. 使用双重for循环,一层从前往后找奇数,另一一层从后往前找偶数,如果找到了使用中间变量交换两个的值,最终实现偶数在前基数在后. 源代码: publ ...
- 奇偶数分离c语言,如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序...
导航:网站首页 > 如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序 如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序 相关问题: 匿名网友: imp ...
- 数组中查找並返回数组_用Python查找数组中出现奇数次的那个数字
有一个数组,其中的数都是以偶数次的形式出现,只有一个数出现的次数为奇数次,要求找出这个出现次数为奇数次的数. 集合+统计 解题思路 最简单能想到的,效率不高.利用集合的特性,通过 Python 的 s ...
- 用Java语言定义一个整数定义的数组,求奇数个数和偶数个数。
##[Java] 定义一个整数定义的数组,求奇数个数和偶数个数. /*作者:龙蝶 *日期:2020年4月4日 */public clsss Array{public static void main( ...
- //2.使用宏将一个数二进制中的奇数位和偶数为进行交换。 #includestdio.h #includestdlib.h #define EXH(x) \ ((x 0x5555555
//2.使用宏将一个数二进制中的奇数位和偶数为进行交换. 分析:提取偶数位:即让原数按位与01010101010101010101010101010101,16进制形式为0x55555555 提取奇数 ...
- java 二维数组奇数金字塔_调整数组顺序使得奇数在前偶数在后(Java)
/* 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. */ //使用额外数组时 ...
- c语言while输入n求n个奇数,任意输入n个整数,输出这n个数中的奇数个数和偶数个数.用while语句...
C语言 输入n并输入n个数,输出这n个数中的所有奇数的乘积 #includevoidmain(){inti,n,arr[100],mul=1;printf("请输入n值:");sc ...
- 谈谈网页中使用奇数字体和偶数字体
相信大多数人在开发中一开始被教导应该使用偶数字体多于奇数字体,但是并不懂其中的缘由.本人总结了一些大牛的看法和实践. 为何偶数居多? 1.比例关系 相对来说偶数字号比较容易和页面中其他部分的字号构成一 ...
- c语言编写程序,输入正整数n,计算0到n以内所有奇数的和,c语言输入正整数n,计算1~n中的奇数和以及偶数和并输出....
用C语言编写程序,输入一个正整数n(1 #include"stdio.h"intmain(){\x09inti,j,n;\x09inta[12];\x09intmin,mx;\x0 ...
- 顺序表中将奇数排在偶数前面。
Node *q; int i=0,j=0,r=0; while(i<=L-last) { if(q->data[i]%2 != 0) { ...
最新文章
- vs2015安装与单元测试以及经过优化的算法
- 重磅 | 19 页花书精髓笔记!你可能正需要这份知识清单
- 在div中显示html_HTML基础知识之DIV
- ajax接口调节,前端用ajax调接口怎么破啊?
- 使用LAMP创建基于wordpress的个从博客网站
- php中函数参数个数问题
- 《软件需求》阅读笔记之一
- Linux软件安装的几种方法 (三)—— 源码安装
- python 依赖包迁移(本地安装)
- java override 用法_JAVA中 @Override 的作用
- 24. 二叉搜索树的后续遍历序列(c++版本)
- 如何制定有效的项目管理计划?
- 国庆福利!384种故宫美色!Matlab中国风配色工具ColorPM
- android模拟器命令大全,玩转安卓模拟器命令行
- python web py入门(2)-URL处理
- C/C++ Linux 后台服务器开发高级架构师学习知识路线总结
- 前进路上,我们都曾经迷失
- java开发wap_C#开发WAP程序
- oracle em13c配置,EM13C添加agent记录两个报错
- 第17节 PKI公钥基础设施
热门文章
- 枚举smb共享期间出错_大量三星手机黑屏系统崩溃,客服:闰4月计算出错
- jdbc 自增id 原理_如何实现 Oracle 的自增序列,两步轻松搞定
- 八皇后问题-python描述
- android7.1 repo,RK3399 Android 7.1 删除repo后编译报错
- 《计算机操作系统》练习题
- 更改计算机复制快捷键,电脑上怎么把一句话设置快捷键,电脑快捷键复制一句话-...
- Javascript:forEach、map、filter、reduce、reduceRight、find、findIndex、keys、values、entries、every、some的使用
- Javascript:获取点击的li标签内部文字
- EChart:EChart与NProgress结合异步加载数据
- java课题设计实验报告,JAVA简单记事本程序设计实验报告