区块链技术博客
www.b2bchain.cn

Java 数组转置

这篇文章主要介绍了Java 数组转置的讲解,通过具体代码实例进行17334 讲解,并且分析了Java 数组转置的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=17334

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

文章目录

    • 在开发中:
      • 时间复杂度 说的是 CUP, 要进行检查 SQL 代码
      • 空间复杂度 说的是 内存, 要进行检查 算法结构
  • 数组转置方式一: 创建新数组进行辅助转置
    • 此方式缺点如下:
  • 数组转置方式二: 原地转置(一个数组内完成转置)
  • 二维数组转置: 原地转置(前提: 行列相同, 否则要用辅助数组完成)

在开发中:

时间复杂度 说的是 CUP, 要进行检查 SQL 代码

空间复杂度 说的是 内存, 要进行检查 算法结构

数组转置方式一: 创建新数组进行辅助转置

package w.y;  public class Arraysort { 	public static void main(String[] args) { 		 		int array_a [] = new int [] {1,2,3,4,5,6,7,8}; 		System.out.println("原数组:"); 		show(array_a); 		 		array_a = arrayReverse(array_a); 		System.out.println("数组转置后:"); 		show(array_a); 		 	} 	public static int[] arrayReverse(int data[]) { 		int temp []= new int[data.length]; 		for (int y = 0, x = data.length; x > 0; x--,y++) { 			temp [y] = data[x -1]; 		} 		return temp; 	} 	 	public static void show(int data[]) { 		for (int i = 0; i < data.length; i++) { 			System.out.print(data[i]+"t"); 			 		} 		System.out.println(); 	} }  

Java 数组转置

此方式缺点如下:

调用方法的时候会在堆内存中开辟的新的空间进行数据的设置, 原数据开辟的空间不在使用 , 方法调用完后 就会出现 完全相同的两片内存空间, 而栈中的原数组对象也指向了新的内存空间, (原数组所分配的空间即无栈对象的指向)造成了空间的浪费(即空间复杂度高)

数组转置方式二: 原地转置(一个数组内完成转置)

Java 数组转置
Java 数组转置
反转次数始终为 : 数组长度 / 2

package w.y;  public class Arraysort { 	public static void main(String[] args) { 		 		int array_a [] = new int [] {1,2,3,4,5,6,7,8}; 		System.out.println("原数组:"); 		show(array_a); 		 		arrayReverse(array_a); 		System.out.println("数组转置后:"); 		show(array_a); 		 	} 	public static int[] arrayReverse(int data[]) { 		int counter = data.length / 2; //找到中间的数据 		int head = 0; 		int tail = data.length-1; 		for (int x = 0; x < counter; x++) { 			int temp = data[head]; 			data[head] = data[tail]; 			data[tail] = temp; 			head ++; 			tail --; 		} 		 		return data; 	} 	 	public static void show(int data[]) { 		for (int i = 0; i < data.length; i++) { 			System.out.print(data[i]+"t"); 			 		} 		System.out.println(); 	} }  

Java 数组转置

二维数组转置: 原地转置(前提: 行列相同, 否则要用辅助数组完成)

Java 数组转置

思路: 保证中间轴 不变, 即 ( x == y)

package w.y;  public class Arraysort { 	public static void main(String[] args) { 		 		int array_a [][] = new int [][]{{1,2,3},{4,5,6},{7,8,9}}; 		System.out.println("原数组:"); 		show(array_a); 		 		arrayReverse(array_a); 		System.out.println("数组转置后:"); 		show(array_a); 		 	} 	public static int[][] arrayReverse(int data[][]) { 		for (int x = 0; x < data.length; x++) { 			for (int y = x; y < data[x].length; y++) { 				if (x!=y) { 					int temp = data[x][y]; 					data[x][y] = data [y][x]; 					data [y][x] = temp; 				} 			} 		} 		return data; 	} 	 	public static void show(int data[][]) { 		for (int i = 0; i < data.length; i++) { 			for (int j = 0; j < data.length; j++) { 				System.out.print(data[i][j]+"t"); 			} 			System.out.println(); 			 		} 		System.out.println(); 	} }  

Java 数组转置

本文转自互联网,侵权联系删除Java 数组转置

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Java 数组转置
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们