zoukankan      html  css  js  c++  java
  • [算法]奇数下标都是奇数或偶数下标都是偶数

    题目:

    给定一个长度不小于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();
    
    	}
  • 相关阅读:
    对bootstrap不同版本的总结
    对于前后端分离的理解
    css3笔记
    Dom
    js菜单
    css兼容问题 ie6,7
    html知识
    前端基础知识
    前端要注意的代码规范
    bootstrap常见类的总结
  • 原文地址:https://www.cnblogs.com/xiaomoxian/p/5188113.html
Copyright © 2011-2022 走看看