如果是使用冒泡排序怎么取前三位
?//完成 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],確實可以直接出來最大的值,但如何通過判斷來實現(xiàn)。
2018-09-02
已經(jīng)解決,是我概念弄混了
2018-08-31
冒泡排序太繁瑣,用快速排序或者插入排序
2018-08-28
問題已解決
// 完成 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
??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;
????}這個就是冒泡排序,由高到低排列,但下面的判斷不能達(dá)成題設(shè)所要求的