Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 調整數組使奇數位元素為奇數,偶數為元素為偶數

調整數組使奇數位元素為奇數,偶數為元素為偶數

編輯:關於Android編程

本題為百度質量部面試題

2n個數,一半奇數,一半偶數,設計一個程序讓奇數位上的數是奇數,偶數位上的是偶數,並計算程序的空間復雜度和時間復雜度

 

程序思想:

本題類似於調整數組使奇數位於數組前半部分,偶數位於數組後半部分。

設兩個指針,一個初始化為ou=0,另一個初始化為ji=1,如果arr[ou]為偶數,ou+=2;如果arr[ji]為奇數,ji+=2;

如果ou<len && ji<len ,再判斷如果偶數為為奇數並且奇數位為偶數,則交換元素。

 

public class jiou {

	public static void main(String[] args) {
		int[] arr = { 0, 1, 3, 2, 2, 4, 4, 5, 5,7 };
		reorder(arr);
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + ",");
		}

	}

	public static void reorder(int[] arr) {
		if (arr == null) {
			System.out.println("the array is null");
			return;
		}
		int len = arr.length;
		int ou = 0;
		int ji = 1;
		while (ou < len && ji < len) {
			if (arr[ou] % 2 == 0) {
				ou = ou + 2;
			}
			if (arr[ji] % 2 == 1) {
				ji = ji + 2;
			}
			if (ou < len && ji < len) {//該條件的目的是先判斷數組下標是否出界,如果不加該條件判斷,程序可能會有數組下標越界錯誤
				if (arr[ou] % 2 == 1 && arr[ji] % 2 == 0) {
					int temp = arr[ou];
					arr[ou] = arr[ji];
					arr[ji] = temp;
				}
			}
		}
	}

}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved