用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");
}
}
}
我的这个程序怎么不能实现呢?
求前辈们的指导 !!! 展开
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");
}
}
}
我的这个程序怎么不能实现呢?
求前辈们的指导 !!! 展开
4个回答
推荐于2018-03-11 · 知道合伙人互联网行家
关注
展开全部
排序算法,基本的高级语言都有一些提供。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+" ");
}
}
}
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+" ");
}
}
}
展开全部
第二次for循环的时候次数错了 第二次循环种植条件不是j<score.length 而是j<score.length - i
冒泡排序 第二次循环 执行一次之后就有一个数被排序 所以下次循环的时候比较就少一次
具体请好好掌握冒泡排序~~~
冒泡排序 第二次循环 执行一次之后就有一个数被排序 所以下次循环的时候比较就少一次
具体请好好掌握冒泡排序~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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");
改成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");
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为啥不直接Arrays.sort(score);?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询