黑马程序员技术交流社区

标题: [纠结的头发都掉光了]二维数组排序问题 [打印本页]

作者: liuelxiwd    时间: 2013-6-1 10:54
标题: [纠结的头发都掉光了]二维数组排序问题
本帖最后由 liuelxiwd 于 2013-6-1 12:36 编辑

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我定义了一个二维数组String [][] arr = new String[5][2];每行的第一列是姓名,第二列是成绩,现在要求按成绩从高到底把这五行拍序打印出来。求代码!!!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

作者: To    时间: 2013-6-1 11:26
同样纠结!java不会。用C还行!
作者: 刘兆华    时间: 2013-6-1 11:46
本帖最后由 刘兆华 于 2013-6-1 12:23 编辑

  哈哈,  纠结的头发都没了     现在好了  你的头发可以避开一劫了   你的福音来了

  1. package cn.day;
  2. public class Test01 {
  3. /*
  4. *
  5. * 我定义了一个二维数组String [][] arr = new String[5][2];
  6. * 每行的第一列是姓名,第二列是成绩,
  7. * 现在要求按成绩从高到底把这五行拍序打印出来。求代码!!!

  8. * */
  9. /**
  10.   * @param args
  11.   */
  12. public static void main(String[] args) {
  13.   // TODO Auto-generated method stub
  14.    String[][] str={{"liming1","35"},{"liming2","22"},{"liming3","64"},{"liming4","88"},{"liming5","55"}};
  15.    System.out.println(str.length);
  16.    String[] nameAge=new String[2];
  17.    for(int x=0;x<str.length-1;x++){
  18.     for(int y=0;y<str.length-x;y++){
  19.     if(Integer.parseInt(str[x][1])<Integer.parseInt(str[x+y][1]))
  20.     {
  21.      nameAge=str[x];
  22.      str[x]=str[x+y];
  23.      str[x+y]=nameAge;
  24.     }
  25.     }
  26.    }
  27.    for(String[] s:str)
  28.    {
  29.     for(String s1:s)
  30.     {
  31.      System.out.println(s1);
  32.     }
  33.    }
  34. }
  35. }

复制代码
话说 老衲的头发已经掉光了

作者: 紫衣侯    时间: 2013-6-1 12:09
双重循环,几维数组就得用几重循环.
作者: liuelxiwd    时间: 2013-6-1 12:17
刘兆华 发表于 2013-6-1 11:46
我先去帮你搞一下   等会给你答案

谢了,等待中
作者: 刘兆华    时间: 2013-6-1 12:24
liuelxiwd 发表于 2013-6-1 12:17
谢了,等待中

这么快  我花了将近40分钟 搞定了 0 .0
作者: 刘兆华    时间: 2013-6-1 12:25
liuelxiwd 发表于 2013-6-1 12:17
谢了,等待中

   对了 还得请你看看我这种排序的效率如何  我不太清楚  因为我一向是考虑实现问题 能实现 再说  你看看效率符合不符合要求




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2