介绍数组排序
基础的排序操作:
数组转置
这期内容当中小编将会给大家带来有关怎么在Java中定义数组,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
数组排序
在很多的面试题上都会出现数组排序的操作形式。但是这个时候你千万别写上:java.util.Arrays.sort(数组)。而这种排序都是以升序为主。
基础的排序操作:
范例:冒泡排序
public class ArrayDemo { public static  void 主要(String 参数[]),{ int 数据[],=,new int[],{9,, 3,, 1,,,,,, 2,, 7日,8日,6日,0}; (数据); printArray(数据); } public static  void 排序(arr int []),{,//实现数组排的序 (int x =, 0;, x & lt;, arr.length 作用;1;,x + +), { (int y =, 0;, y & lt;, arr.length 作用;x 作用;1;,y + +), { 如果(arr [y],祝辞,arr [y + 1]), { int temp =, arr [y]; arr [y],=, arr [y + 1]; arr [y + 1],=,温度; } } } }//定义一个专门进行数组输出的方法 public static  void printArray (int 临时[]),{ for (int 小姐:=,0;,小姐:& lt;, temp.length;,我+ +),{ System.out.print(临时[我],+,“,“); } System.out.println (); } }
数组转置
所谓的转置最简单的理解就是首尾交换。而如果要想实现这样的交换有两种实现思路。
思路一:开辟一个新的等长的数组,而后将原始数组倒序保存进去;
public class ArrayDemo { public static  void 主要(String 参数[]),{ int 数据[],=,new int[],{9,, 3,, 1,,,,,, 2,, 7日,8日,6日,0};=data 反向(数据);,//反转 printArray(数据); } public static  int [],反向(arr int []), {, int 临时[],=,new int [arr.length]; int foot =, 0; (int x =, arr.length 作用;1;,x 祝辞=,0;,x -), { 临时(脚+ +),=,arr [x]; } return 温度; }//定义一个专门进行数组输出的方法 public static  void printArray (int 临时[]),{ for (int 小姐:=,0;,小姐:& lt;, temp.length;,我+ +),{ System.out.print(临时[我],+,“,“); } System.out.println (); } }
使用此类模式实现的最大问题在于开辟了两块相同的堆内存空间,所以造成空间浪费。
思路二:在一个数组上完成转换
public class ArrayDemo { public static  void 主要(String 参数[]),{ int 数据[],=,new int[],{9,, 3,, 1,,,,,, 2,, 7日,8日,6日,0}; 反向(数据),,//反转 printArray(数据); } public static  void 反向(arr int []), { int center =, arr.length /, 2,,//转换次数 int head =, 0,,//头部开始索引 int tail =, arr.length 作用;1;,//尾部开始索引 (int x =, 0;, x & lt;,中心;,x + +), { int temp =, arr(头); arr(头),=,arr(尾); arr(尾巴),=,温度; 头+ +; 尾巴——; } }//定义一个专门进行数组输出的方法 public static  void printArray (int 临时[]),{ for (int 小姐:=,0;,小姐:& lt;, temp.length;,我+ +),{ System.out.print(临时[我],+,“,“); } System.out.println (); } }
这种转换只需要根据数组长度÷2即可。
如果要进行二维数组的原地转置,那么肯定有一个前提:行列要相等。
范例:保证中间轴不变(x=y)
public class ArrayDemo { public static  void 主要(String 参数[]),{ int 数据[][],=,new int[][],{{1,, 2,, 3},,{4日,5日,6},{7,8,9}}; 反向(数据),,//反转 printArray(数据); } public static  void 反向(arr int [] []), { (int x =, 0;, x & lt;, arr.length;, x + +), { (int y =, x,, y & lt;, arr [x] . length;, y + +), { 如果(x !=, y), { int temp =, arr [x] [y]; 加勒比海盗[x] [y],=, arr [y] [x]; arr [y] [x],=,温度; } } } }//定义一个专门进行数组输出的方法 public static  void printArray (int 临时[][]),{ for (int 小姐:=,0;,小姐:& lt;, temp.length;,我+ +),{ (int j =, 0;, j & lt;,临时[我]. length;, j + +), { System.out.print(临时[我][j], +,“,“); } System.out.println (); } System.out.println (); } }怎么在Java中定义数组