如何在Java中对文本文件进行冒泡排序

时间:2010-10-13 05:19:42

标签: java arrays sorting bubble-sort

如何在java中进行冒泡排序, 文本文件如下所示:

aaa

2

bbb

3

ccc

1

我需要做的是循环播放并将最高分显示为最低分。 当我运行下面的代码时,数字已经排序。它将显示3,2,然后显示1。 但是名称与相应的分数不同步,它只会根据第一个显示名称。所以如果我运行下面的代码,输出基本上会是这样的:

aaa  3

bbb  2

ccc  1

功能:

public void hi_score(){
    int i=0;
        try {
                 FileReader fr;
          fr = new FileReader (new File("F:\\pscores.txt"));
          BufferedReader br = new BufferedReader (fr);
          int ar=0;
          for(ar=0;ar<10;ar++){
          player_name[ar]=br.readLine();
          player_score[ar]=Integer.parseInt(br.readLine());
          }

            } catch (Exception e) { e.printStackTrace();}

              bubble_srt(player_score, player_score.length);
        System.out.print("Highscores:\n");
        System.out.println("Scores");

        System.out.println("Name\tScore");
        for(i = 0; i <NUMBER_OF_HI_SCORE; i++){
          System.out.print(player_name[i] + "\t" +player_score[i] + "\n");

        }
    }

如何在不使用arraylist的情况下执行此操作。只是普通的阵列。

2 个答案:

答案 0 :(得分:2)

这是因为您只对player_score数组进行排序:

bubble_srt(player_score, player_score.length);

您还需要将player_name数组发送到该函数,按照之前的排序(基于分数)进行排序,每次交换两个分数时,您还必须交换名称。 / p>

答案 1 :(得分:2)

应该创建一个单独的数组,将玩家和相应的分数组合为String []; 创建一个得分为冒号的单个数组

然后你有一个有序的int [] player_score数组,你可以尝试通过String [] playername + score

中元素的子串来匹配它

编辑: 所以在冒泡排序之后,当你打算打印它时,也许拿新分类的分数数组,尝试匹配String [] playername + score数组的相应元素,然后打印出与第0个匹配的元素排序得分数组的第1个,第2个值。