用Java编写 数字由小到大的排列

//数字由小到大进行排列publicclassArrayDemo2{publicstaticvoidmain(Stringargs[]){intscore[]={78,3... //数字由小到大进行排列
public class ArrayDemo2
{
public static void main(String args[ ]) {
int score[] = {78,35,39,26,39,44,36,76,11,26,27,17};
int temp;
for(int i = 0; i<score.length; i++) {
for(int j=1; j<score.length; j++){
if(score[i]>score[j]){
temp = score[i];
score[i] = score[j];
score[j] = temp;
}
}
}
for(int i=0; i<score.length; i++) {
System.out.print( "score[" + i + "]" = + score[i] + "\t");
}
}
}

我的这个程序怎么不能实现呢?
求前辈们的指导 !!!
展开
 我来答
趣事情
推荐于2018-03-11 · 知道合伙人互联网行家
趣事情
知道合伙人互联网行家
采纳数:517 获赞数:5452
电脑技术,软件开发。移动开发。网站建设相关专业知识。都可以提供解答和相关技术指导。

向TA提问 私信TA
展开全部
排序算法,基本的高级语言都有一些提供。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+" ");
}
}
}
韩涛董青
2011-11-10 · TA获得超过443个赞
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:127万
展开全部
第二次for循环的时候次数错了 第二次循环种植条件不是j<score.length 而是j<score.length - i
冒泡排序 第二次循环 执行一次之后就有一个数被排序 所以下次循环的时候比较就少一次
具体请好好掌握冒泡排序~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luoxuanjin
推荐于2016-01-13 · TA获得超过252个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:175万
展开全部
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");
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Rosen326
2011-11-10 · TA获得超过633个赞
知道小有建树答主
回答量:279
采纳率:100%
帮助的人:235万
展开全部
为啥不直接Arrays.sort(score);?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式