【剑指offer-解题系列(13)】奇数位于数组的前列
2017-05-21 18:48
246 查看
分析
第一种:
1、新建两个数组分别放原数组中的奇数和偶数。
2、将奇数数组中的数复制给原数组
3、将偶数数组中的数复制到原数组奇数的后边
复杂度O(n),空间复杂度O(n)
第二种:
用冒泡方法,把奇数冒泡到前方,复杂度O(n^2),空间复杂度O(n)
代码实现
void reOrderArray(vector<int> &array) {
int n = array.size();
int ind_last_odd = 0;
for(int i = 0;i<n;i++){
if(array[i]&0x01){
for(int j = i;j>ind_last_odd;j--){
swap(array[j],array[j-1]);
}
ind_last_odd ++;
}
}
}
题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。分析
第一种:
1、新建两个数组分别放原数组中的奇数和偶数。
2、将奇数数组中的数复制给原数组
3、将偶数数组中的数复制到原数组奇数的后边
复杂度O(n),空间复杂度O(n)
第二种:
用冒泡方法,把奇数冒泡到前方,复杂度O(n^2),空间复杂度O(n)
代码实现
void reOrderArray(vector<int> &array) {
int n = array.size();
int ind_last_odd = 0;
for(int i = 0;i<n;i++){
if(array[i]&0x01){
for(int j = i;j>ind_last_odd;j--){
swap(array[j],array[j-1]);
}
ind_last_odd ++;
}
}
}
相关文章推荐
- 调整数组顺序使奇数位于偶数前面(剑指Offer 第 13 题)
- [剑指Offer] 13.调整数组顺序使奇数位于偶数前面
- 剑指offer 13 调整数组顺序使奇数位于偶数前面
- 剑指Offer [13] 调整数组顺序使奇数位于偶数前面
- 【剑指offer】13调整数组顺序使奇数位于偶数前面
- 剑指Offer--13.调整数组顺序使奇数位于偶数前面
- 剑指offer13 调整数组顺序使奇数位于偶数前面
- (C++)剑指offer-13:调整数组顺序使奇数位于偶数前面(代码的完整性)
- 【剑指Offer】调整数组顺序使奇数位于偶数前面 解题报告(Python)
- 剑指Offer——(13)调整数组顺序使奇数位于偶数前面
- 剑指Offer_13_调整数组顺序使奇数位于偶数前面
- 剑指offer题解C++【13】调整数组顺序使奇数位于偶数前面
- 剑指Offer面试题:13.调整数组顺序使奇数位于偶数前面
- 剑指offer-第三章高质量的代码(调整数组顺序使得奇数位于偶数的前面)
- 【剑指Offer面试编程题】题目1516:调整数组顺序使奇数位于偶数前面--九度OJ
- 剑指offer-14 调整数组顺序使奇数位于偶数前面
- 剑指offer 面试题14—调整数组顺序使奇数位于偶数前面
- 【剑指offer 面试题14】调整数组顺序使奇数位于偶数前面
- 【剑指Offer学习】【面试题14 :调整数组顺序使奇数位于偶数前面】
- 剑指Offer之 - 调整数组顺序使奇数位于偶数前面