java入门 排序问题 指定区间排序Arrays.sort(ar,0,n)

我想指定区间排序,就是只把自己输入的数据排序(不包括开辟空间是定义的处世值):

import java.util.*;
import java.math.*;
import java.io.*;
import java.text.*;
public class Main
{
public static void main(String[]args)
{
Scanner cin=new Scanner(System.in);
int ar[]=new int[10000];
while(cin.hasNext())
{
int n=cin.nextInt();
for(int i=0;i<n;i++)
{
ar[i]=cin.nextInt();
Arrays.sort(ar,0,n);
}
for(int i=0;i<n;i++)
{
System.out.print(ar[i]+" ");
}
System.out.println();
}
}
}

####################可是不知为什么##########################
5
9 2 1 3 5
0 0 1 3 5 //输出
5
9 2 1 3 5
0 1 2 3 5 //输出
5
9 2 1 3 5
1 1 2 3 5 //输出
5
9 2 1 3 5
1 1 2 3 5 //输出

四组相同数据输出很都很奇葩,最终要的是没有我想要的结果。

请问各位前辈是哪里出了问题呀。。

for(int i=0;i<n;i++)
{
ar[i]=cin.nextInt();
Arrays.sort(ar,0,n); //原因出在这句的位置,等于每输入1个数字就排序1次n个数
/*
5 //输入5个数
输入 9 2 1 3 5 变成
9(前5个排序) 2(前5个排序) 1(前5个排序) 3(前5个排序) 5(前5个排序)
在9输入后数据为[9,0,0,0,0...0,0,0] ,把前五个排序得[0,0,0,0,9,0...0,0]*/

for(int i=0;i<n;i++)
{
ar[i]=cin.nextInt();
}
Arrays.sort(ar,0,n);//改到for之外才符合设计意图

接下来都错了
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-01
arrays.sort(),里面的参数应该直接跟你要排序的数组的
相似回答
大家正在搜