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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 落幕繁华 中级黑马   /  2014-7-24 11:44  /  791 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何将一个二维数组int arr[][] = { { 12, 2, 3, 7 }, { 45, 5, 6 }, { 74, 8, 9, 15 } };进行排序,要求1:结果成2,3,5,7,8,9.....的形式。要求2:结果成{{2,3,7,12},{5,6,45},{8,9,15,74}}的形式

2 个回复

倒序浏览
要求1:把二维数组中的数据全部存到一维数组中在进行排序!
要求2:把要求1的结果再存到二维数组中
回复 使用道具 举报
  1. public static void main(String[] args) {
  2.         int[][] arr = { { 12, 2, 3, 7 }, { 45, 5, 6 }, { 74, 8, 9, 15 } };
  3.         m2(arr);
  4.         m1(arr);
  5. }

  6. private static void m1(int[][] arr) {
  7.         // TODO Auto-generated method stub
  8.         int n = 0;
  9.         int c = 0;
  10.         for (int[] is : arr) {
  11.                 n += is.length;
  12.         }
  13.         int[] a = new int[n];
  14.         for (int[] is : arr) {
  15.                 for (int i : is) {
  16.                         a[c++] = i;
  17.                         for (int j = 0; j < c; j++) {
  18.                                 if (i < a[j]) {
  19.                                         for (int k = c; k > j; k--) {
  20.                                                 a[k] = a[k - 1];
  21.                                         }
  22.                                         a[j] = i;
  23.                                         break;
  24.                                 }
  25.                         }
  26.                 }
  27.         }
  28.         for (int i : a) {
  29.                 System.out.print(i + "\t");
  30.         }
  31. }

  32. private static void m2(int[][] arr) {
  33.         for (int[] is : arr) {
  34.                 for (int i = 0; i < is.length; i++) {
  35.                         for (int j = i + 1; j < is.length; j++) {
  36.                                 if (is[j] < is[i]) {
  37.                                         swap(is, i, j);
  38.                                 }
  39.                         }
  40.                 }
  41.         }
  42.        
  43.         for (int[] is : arr) {
  44.                 for (int i : is) {
  45.                         System.out.print(i + "\t");
  46.                 }
  47.                 System.out.println();
  48.         }
  49. }

  50. private static void swap(int[] is, int i, int j) {
  51.         int temp = is[i];
  52.         is[i] = is[j];
  53.         is[j] = temp;
  54. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马