如果是使用冒泡排序怎么取前三位

来源:7-1 编程练习

空空空空空空啊

2018-08-28 10:39

 //完成 main 方法
    public static void main(String[] args) {
       
        int[] scores=new int[]{89,-23,64,91,119,52,73};
         HelloWorld hello=new HelloWorld();
         hello.yjj(scores);
       
    }
   
    //定义方法完成成绩排序并输出前三名的功能
    public void yjj(int[] score){
       int num = 0;
  for (int i = 0; i < score.length; i++) {
   for (int j = 0; j < score.length - 1; j++) {
    if (score[j] < score[j + 1]) {
     
     int temp = score[j+1];
     score[j+1] = score[j];
     score[j] = temp;
    }
    if (score[j] < 0 || score[j] > 100) {
     continue;
    }
    num++;
    if (num > 3) {
     break;
    }
    System.out.println(score[j]);


   }

  }

   
    } 
   
}

如果是使用score[0],score[1],score[2],确实可以直接出来最大的值,但如何通过判断来实现。

写回答 关注

4回答

  • 空空空空空空啊
    2018-09-02 00:15:15

    已经解决,是我概念弄混了


  • 慕粉1721587255
    2018-08-31 16:34:06

    冒泡排序太繁琐,用快速排序或者插入排序

  • 空空空空空空啊
    2018-08-28 16:43:23

    问题已解决

    // 完成 main 方法
     @SuppressWarnings("unused")
     public static void main(String[] args) {
      int num = 0;
      int[] scores = new int[] { 89, -23, 64, 91, 119, 52, 73 };
      yjj(scores);
      for(int i=0;i<scores.length;i++){
       if(scores[i]>100||scores[i]<0){
        continue;
       }
       num++;
       if(num>3){
        break;
       }
       System.out.println(scores[i]);
      }
     
     }

     // 定义方法完成成绩排序并输出前三名的功能
     public static void yjj(int[] score) {

      
      for (int i = 0; i < score.length; i++) {
       
       for (int j = 0; j < score.length - 1; j++) {
        if (score[j] <score[j + 1]) {
         
         int temp = score[j];
         score[j] = score[j+1];
         score[j+1] = temp;
     
        }
      
        
       }
      }
     }


  • 空空空空空空啊
    2018-08-28 10:44:29

      for (int i = 0; i < score.length; i++) {
       for (int j = 0; j < score.length - 1; j++) {
        if (score[j] < score[j + 1]) {
         
         int temp = score[j+1];
         score[j+1] = score[j];
         score[j] = temp;
        }这个就是冒泡排序,由高到低排列,但下面的判断不能达成题设所要求的

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165600 学习 · 17587 问题

查看课程

相似问题