數組轉置
阿新 • • 發佈:2017-08-31
完成 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--;
}
}
數組轉置