热心网友
回答时间:2023-12-16 10:16
排序算法,基本的高级语言都有一些提供。C语言有qsort()函数,C++有sort()函数,java语言有Arrays类(不是Array)。用这些排序时,都可以写自己的排序规则。
Java API对Arrays类的说明是:此类包含用来操作数组(比如排序和搜索)的各种方法。
实现代码如下:
package com.test.test;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test{
public static void main(String args[]){
System.out.println("请输入数字并按回车, 输入其他字符按回车退出");
Scanner scan = new Scanner(System.in);
List<Integer> list = new ArrayList<Integer>();
while(scan.hasNextInt()){
list.add(scan.nextInt());
scan = new Scanner(System.in);
}
Test test = new Test();
List<Integer> fList = test.arrangeList(list);
test.printList(fList);
}
public List<Integer> arrangeList(List<Integer> list){
List<Integer> rList = new ArrayList<Integer>();
for(int i=0;i<list.size();i++){
int k = 0;
int temp = list.get(i);
for(int j=1;j<list.size();j++){
if(temp>list.get(j)){
k = j;
temp = list.get(j);
}
}
if(rList.add(list.get(k))){
list.remove(k);
i--;
}
}
return rList;
}
public void printList(List<Integer> list){
for(Integer i:list){
System.out.print(i+" ");
}
}
}
收起
热心网友
回答时间:2023-12-16 10:16
第二次for循环的时候次数错了 第二次循环种植条件不是j<score.length 而是j<score.length - i
冒泡排序 第二次循环 执行一次之后就有一个数被排序 所以下次循环的时候比较就少一次
具体请好好掌握冒泡排序~~~
收起
热心网友
回答时间:2023-12-16 10:17
1、for(int j=1; j<score.length; j++){
改成for(int j=i; j<score.length; j++){
2、System.out.print( "score[" + i + "]" = + score[i] + "\t");
改成System.out.print( "score[" + i + "]=" + score[i] + "\t");
收起
热心网友
回答时间:2023-12-16 10:17
为啥不直接Arrays.sort(score);?
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。
收起