为了账号安全,请及时绑定邮箱和手机立即绑定

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

 //完成 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 回答

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


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

问题已解决

// 完成 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;
 
    }
  
    
   }
  }
 }


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;
    }这个就是冒泡排序,由高到低排列,但下面的判断不能达成题设所要求的

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信