1. 程式人生 > >數組轉置

數組轉置

完成 for 長度 一個數 改變 stat 數組轉置 頭部 方法

首尾交換

思路一:開辟一個等長的數組,原始數組反轉存入

public static int[] reverse(int arr[])

{

  {

    int temp = new int[arr.length];

    int foot = 0;

    for(int x=arr.length - 1; x>=0; x--)

    {

      temp[foot++]= arr[x];

    }

  return temp;

  }

}

最大問題在於此類方法開辟了兩塊堆內存空間 空間浪費 內存占用量高 查sql語句 cpu高 查算法

思路二:在一個數組上完成數組反轉

原始數組 1 2 3 4 5 6 7 8 9

第一次 1和9交換

第二次 2和8交換

第三次 3和7交換

第四次 4和6交換 5不做任何改變 共轉了數組長度/2次

public static void reverse (int arr[])

{

  int center = arr.length/2;

  int head = 0 ; 頭部

  int tail = arr.length - 1 ; 尾部

  for(int x = 0;x<center ;x++)

  {

    int temp = arr[head];

    arr[head] = arr[tail]

    arr[tail] = temp ;

    head ++;

    tail--;

  }

}

數組轉置