剑指Offer——调整数组顺序使奇数位于偶数前面
来源:互联网 发布:网速监控软件 编辑:程序博客网 时间:2024/05/22 05:14
问题描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
解题思路
首先想到的是冒泡,把奇数往前面冒,偶数往下沉,奇偶相遇则交换
程序如下:
public class Solution { public void reOrderArray(int [] array) { for(int i=0; i<array.length-1; i++){ for(int j=0; j<array.length-i-1; j++){ if(array[j]%2==0 && array[j+1]%2!=0){ array[j] ^= array[j+1]; array[j+1] ^= array[j]; array[j] ^= array[j+1]; } } } }}
改进版,记录最后交换的位置,减少不必要的比较操作
public class Solution { public void reOrderArray(int [] array) { int record = array.length-1; int pos = 0; for(int i=0; i<array.length-1; i++){ for(int j=0; j<record; j++){ if(array[j]%2==0 && array[j+1]%2!=0){ array[j] ^= array[j+1]; array[j+1] ^= array[j]; array[j] ^= array[j+1]; pos = j; } } record = pos; } }}
阅读全文
0 0
- 剑指offer:调整数组顺序使奇数位于偶数前面
- 剑指offer--调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 《剑指offer》调整数组顺序使奇数位于偶数前面
- 剑指 offer:调整数组顺序使奇数位于偶数前面
- 剑指offer-调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 剑指offer-调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 【剑指offer】调整数组顺序使奇数位于偶数前面
- [剑指offer]调整数组顺序使奇数位于偶数前面
- 剑指offer:调整数组顺序使奇数位于偶数前面
- 【剑指offer】调整数组顺序使奇数位于偶数前面
- 剑指offer|调整数组顺序使奇数位于偶数前面
- 《剑指offer》调整数组顺序使奇数位于偶数前面
- 剑指Offer:调整数组顺序使奇数位于偶数前面
- 剑指offer - 调整数组顺序使奇数位于偶数前面
- 【剑指offer】调整数组顺序使奇数位于偶数前面
- a标签突出显示盒子非js效果
- Funny Function————(hdu6050)矩阵快速幂
- nltk入门函数解释(concordance,similar,common_contexts)
- android 沉沁式简单实现
- angular中ng-repeat及track by
- 剑指Offer——调整数组顺序使奇数位于偶数前面
- MOOC清华《程序设计基础》第7章:统计活跃用户数
- 异常机制
- AngularJS Phonecat (步骤6-步骤7)
- A
- Fence Repair (优先队列)
- FileReader
- 判断一棵树是否是另一棵树的子树
- javascript中.push()与.concat()的区别