调整数组元素顺序,奇数在前,偶数在后
2017-09-05 22:10
387 查看
输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。
package com.main; import java.util.Arrays; public class Main { private void adjustPosition(int[] nums) { int n = nums.length; if (n < 2) { return; } int i = n - 1; int j = 0; int temp = 0; while (i > j) { if ((nums[i] & 1) == 0) {//是偶数,继续往左 i--; continue; } if ((nums[j] & 1) == 1) {//是奇数,继续往右 j++; continue; } temp = nums[i];//交换 nums[i] = nums[j]; nums[j] = temp; i--;//下一个元素 j++; } } public static void main(String[] args) { int[] nums = new int[]{1, 2, 3, 4, 5, 6}; new Main().adjustPosition(nums); System.out.println(Arrays.toString(nums)); } } //[1, 5, 3, 4, 2, 6]
相关文章推荐
- 数组:奇数在前,偶数在后,要求顺序不变
- 调整数组元素的顺序前为奇数后为偶数
- 奇数在前 偶数在后,相对顺序保持不变
- 奇数在前,偶数在后,可以有顺序改变
- 将一整数序列按奇数在前,偶数在后的顺序重新排放,并要求奇偶两部分分别有序。
- 调整输入数据数组顺序,奇数在前,偶数在后
- 调整数组元素的顺序使得奇数在前偶数在后并且各自有序
- 调整数组顺序,使得奇数在前偶数在后,分别保证奇数和偶数之间的相对位置不变
- 调整数组顺序使奇数位于偶数前面
- 剑指Offer面试题14[调整数组顺序使奇数位于偶数前面]
- 【九度OJ1516】|【剑指offer14】调整数组顺序使奇数位于偶数前面
- 剑指offer - 调整数组顺序使奇数位于偶数前面
- 剑指offer_数组---调整数组顺序使奇数位于偶数前面
- 剑指offer 3.3 代码的完整性4-在O(n)时间内调整数组顺序,使奇数位于偶数前面
- 剑指offer(十二,十三) 数值的整数次方,调整数组顺序使奇数位于偶数前面
- 剑指offer--面试题14:调整数组顺序使奇数位于偶数前面--Java实现
- 【剑指offer】面试题14:调整数组顺序使奇数位于偶数前面
- 九度_题目1516:调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 面试题14 调整数组顺序使奇数位于偶数前面