首页 > 编程语言 > 详细

[算法]奇数下标都是奇数或偶数下标都是偶数

时间:2016-02-13 18:15:18      阅读:205      评论:0      收藏:0      [点我收藏+]

题目:

给定一个长度不小于2的数组arr,实现一个函数调整arr,要么使所有的偶数下标都是偶数,要么使所有的奇数下标都是奇数。

要求:时间复杂度为O(N),额外空间复杂度为O(1)。

程序:

	public static void modify(int[] arr) {
		if (arr == null || arr.length < 2) {
			return;
		}
		int even = 0;
		int odd = 1;
		int end = arr.length - 1;
		while (even <= end && odd <= end) {
			printArray(arr);
			if ((arr[end] & 1) == 0) {
				swap(arr, end, even);
				even += 2;
			} else {
				swap(arr, end, odd);
				odd += 2;
			}
		}
	}
	public static void swap(int[] arr, int index1, int index2) {
		int tmp = arr[index1];
		arr[index1] = arr[index2];
		arr[index2] = tmp;
	}
	public static void printArray(int[] arr) {
		for (int i = 0; i != arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.println();
	}

[算法]奇数下标都是奇数或偶数下标都是偶数

原文:http://www.cnblogs.com/xiaomoxian/p/5188113.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!