剑指offer-----调整数组顺序使奇数位于偶数前面
2018-02-01 19:14
218 查看
1、题目:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
2、思路:
设置两个指针,第一个指向数组的开头,第二个指向数组的结尾,第一个指针遇到偶数,第二个指针遇到奇数,将两个指针所指的元素交换,第一个指针始终小于第二个指针。代码如下:
public class Solution {
public void reOrderArray(int [] array) {
if(array.length == 0){
return;
}
int pBegin = 0;//第一个指针指向序列开头
int pEnd = array.length - 1;//第二个指针指向序列结尾
while(pBegin < pEnd){//每次循环交换一次
while(pBegin<pEnd && (array[pBegin]&1)!=0){//得到前面第一个偶数的序号
pBegin++;
}
while(pBegin<pEnd && (array[pEnd]&1)==0){//得到后面第一个奇数的序号
pEnd--;
}
if(pBegin < pEnd){//将前一个指针所指的元素和后一个指针所指的元素交换
int temp = array[pBegin];
array[pBegin] = array[pEnd];
array[pEnd] = temp;
}
}
}
public static void main(String args[]){
Solution s = new Solution();
int array[] = {1,2,3,4,5};
s.reOrderArray(array);
}
}
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
2、思路:
设置两个指针,第一个指向数组的开头,第二个指向数组的结尾,第一个指针遇到偶数,第二个指针遇到奇数,将两个指针所指的元素交换,第一个指针始终小于第二个指针。代码如下:
public class Solution {
public void reOrderArray(int [] array) {
if(array.length == 0){
return;
}
int pBegin = 0;//第一个指针指向序列开头
int pEnd = array.length - 1;//第二个指针指向序列结尾
while(pBegin < pEnd){//每次循环交换一次
while(pBegin<pEnd && (array[pBegin]&1)!=0){//得到前面第一个偶数的序号
pBegin++;
}
while(pBegin<pEnd && (array[pEnd]&1)==0){//得到后面第一个奇数的序号
pEnd--;
}
if(pBegin < pEnd){//将前一个指针所指的元素和后一个指针所指的元素交换
int temp = array[pBegin];
array[pBegin] = array[pEnd];
array[pEnd] = temp;
}
}
}
public static void main(String args[]){
Solution s = new Solution();
int array[] = {1,2,3,4,5};
s.reOrderArray(array);
}
}
相关文章推荐
- 剑指offer之面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer.14:调整数组顺序使奇数位于偶数前面
- 剑指offer-算法题练习:part15 调整数组顺序使奇数位于偶数前面
- 剑指offer--面试题21:调整数组顺序使奇数位于偶数前面
- 剑指Offer之调整数组顺序使奇数位于偶数前面
- 剑指 offer:调整数组顺序使奇数位于偶数前面
- 剑指offer--调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组的顺序使奇数位于偶数前面
- 剑指offer——面试题14:调整数组顺序使奇数位于偶数前面
- 剑指Offer----面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer(十二,十三) 数值的整数次方,调整数组顺序使奇数位于偶数前面
- 剑指offer-调整数组顺序使奇数位于偶数前面
- 剑指Offer 调整数组顺序使奇数位于偶数前面
- 【剑指offer 面试题14】调整数组顺序使奇数位于偶数前面
- 剑指offer--调整数组顺序使奇数位于偶数前面
- 剑指Offer——调整数组顺序使奇数位于偶数前面
- 剑指offer之十二---调整数组顺序使奇数位于偶数前面
- 剑指offer--调整数组顺序使奇数位于偶数前面
- 剑指offer-3-面试14:调整数组顺序使奇数位于偶数前面
- 剑指Offer之 - 调整数组顺序使奇数位于偶数前面