码迷,mamicode.com
首页 > 编程语言 > 详细

数组转置

时间:2017-08-31 20:24:22      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:ever   eve   []   bsp   cpu高   turn   反转   length   数组   

首尾交换  

思路一:开辟一个等长的数组,原始数组反转存入

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--;

  }

}

 

数组转置

标签:ever   eve   []   bsp   cpu高   turn   反转   length   数组   

原文地址:http://www.cnblogs.com/123talents/p/7460188.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!