14 调整数组顺序使奇数位于偶数前面

本文介绍两种C++方法实现数组中奇数和偶数的分离排序,一种只保证奇偶分开,另一种同时保持两者内部顺序不变。

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分

 

C++:

1 void reOrderArray(vector<int> &array) {
2     int k = 0 ;
3     for(int i = 0 ; i < array.size() ; i++){
4         if (array[i] % 2 == 1){
5             swap(array[k++] , array[i]) ;
6         }
7     }
8 }

 

 

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,

并保证奇数和奇数,偶数和偶数之间的相对位置不变。

 

 

C++:

 1 class Solution {
 2 public:
 3     void reOrderArray(vector<int> &array) {
 4         int oddNum = 0 ;
 5         for(int a : array){
 6             if (a % 2 == 1){
 7                 oddNum++ ;
 8             }
 9         }
10         int i = 0 ;
11         int j = oddNum ;
12         vector<int> copy = array ;
13         for(int num : copy){
14             if (num % 2 == 1){
15                 array[i++] = num ;
16             }else{
17                 array[j++] = num ;
18             }
19         }
20     }
21 };

 

转载于:https://www.cnblogs.com/mengchunchen/p/8930981.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值