A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 廉伟 中级黑马   /  2012-9-4 22:36  /  1608 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class ForForDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int [] [] arr={{9,2,3,6},{12,2,34,23,1},{2,3,12,34,6},{2,4,13,12}};

  6.         printArray(arr);
  7.         bubbleSort(arr);
  8.         printArray(arr);
  9.                
  10.                 int sum=getArray(arr);
  11.                 System.out.println("sum="+sum);
  12.         }
  13.         public static int getArray(int[] []arr)
  14.         {
  15.                 int sum=0;
  16.                 for (int x=0;x<arr.length ;x++ )
  17.                 {
  18.                         for (int y=0 ;y<arr[x].length ;y++ )
  19.                         {
  20.                                 sum =sum+arr[x][y];
  21.                         }
  22.                 }
  23.                 return sum;
  24.         }
  25.         public static int bubbleSort(int [][]arr)
  26.         {
  27.                 for (int x=0;x<arr.length ;x++ )
  28.                 {
  29.                         for (int y=0;y<arr[x].length-1 ;y++ )
  30.                         {
  31.                                 for (int z=y+1;z<arr[x].length-y-1 ;z++ )
  32.                                 {
  33.                                         if (arr[y][z]>arr[y][z+1])
  34.                                         {
  35.                                                 int temp=arr[y][z];
  36.                                                 arr[y][z]=arr[y][z+1];
  37.                                                 arr[y][z+1]=temp;
  38.                                         }

  39.                                 }
  40.                                
  41.                
  42.                         }
  43.                 }
  44.                 return -1;
  45.         }
  46.         public static int printArray(int [][]arr)
  47.                
  48.         {
  49.                
  50.                 for (int x=0; x<arr.length;x++ )
  51.                 {
  52.                         System.out.print("[");
  53.                         for (int y=0;y<arr[x].length ;y++ )
  54.                         {
  55.                                 if (y!=arr[x].length-1)
  56.                                 {
  57.                                         System.out.print(arr[x][y]+",");
  58.                                 }
  59.                                 else System.out.println(arr[x][y]+"]");
  60.                         }
  61.                 }
  62.                 return -1;
  63.         }
  64. }
复制代码
二维数组,多维数组怎么排序啊。最好写详细的过程

评分

参与人数 1技术分 +1 收起 理由
田建 + 1

查看全部评分

1 个回复

倒序浏览
多维数组、数组的排序

多维数组可以理解为由若干低维数组组成的数组,例如,多个一维数组可以组合而成为“二维数组”,多个二维数组组成三维数组…

二维数组的结构:

s[i][j] j=0 j=1 j=2

i=0 67 89 53

i=1 77 98 68

i=2 57 66 73

i=3 80 88 94

i=4 84 92 90

多行多列、类型相同的数据组成的数据表

二维数组s的第一维的长度为5,即数组s是由5个一维整型数组类型(int[])元素组成,分别标记为s[0] s[1] s[2]…,这5个一维数组的长度,即数组s的第二维的长度为3 。

要访问二维数组中的某个元素,需要知道该元素的位置(第几行、第几列)

二维数组的声明

格式:类型名(任意合法的Java数据类型

) 变量名[][];(标明声明的是二维数组

)   或   类型名[][]  变量名;(合法的Java语言标识符



例如,int[][] s;           Student  s[][];  

需注意:声明了数组类型变量,运行时系统只为引用变量分配引用空间,并没有创建对象,也不会为数组元素分配空间,因此尚不能使用任何数组元素。

静态初始化
格式:类型[][]  数组名={{第0行初值},…,{第n-1行初值}};
例如,int[][] s={{67,89,53},{77,98,68},{57,66,73},{80,88,94},{84,92,90}};

动态初始化

直接为每一维分配空间
例如,int [][] s=new int[5][3];

从最高维开始(必须从最高维开始),分别为每一维分配空间。例如,int[][] s=new int[5][];
s[0]=new int[3];   s[1]=new int[3];…

注意: Java中允许二维数组中每行的元素个数不同,即每行的列数可以不同。例如,int[][] s=new int[3][];

s[0]=new int[1];     s[1]=new int[2];     s[2]=new int[3];

注意:使用二维数组s的length属性可获得二维数组高维的大小,即行数;使用s[i].length属性可获得二维数组每一行的列数,即每一行的元素个数。

for(int i=0;i<s.length;i++){

           for(int j=0;j<s[i].length;j++)

                  sum+=s[i][j];

   }

在JDK的java.util包中定义的Arrays类提供了多种数组操作方法,实现了对数组元素的排序、填充、转换、增强检索和深度比较等功能,所有的这些方法都是static的。

数组元素的排序方法
      原型:public static void sort(<type>[] a);
       例如,int[] a={4,12,0,-5,45,-56};
                  Arrays.sort(a);

注意:数组元素的排序通常指一维数值型数组元素按升序排序,偶尔也会涉及一维String数组的排序,多维和其他引用类型的数组排序实用意义不大。

评分

参与人数 1技术分 +1 收起 理由
田建 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马