关于JAVA中数组排序的问题?

定义 一组数并且赋值! 先排序(升序) 然后从控制台输入一个数
输入进去后 也自动排好序 !也是升序! 在JAVA中实现
大侠 多些点注释那! 我是新手 刚学没多长时间!
我们刚学到 字符串那! 应该就用那的知识吧~!...
谢谢 了 ~! 谢谢了!!
那个 大哥 能给我一个 不报错的 代码啊!!
对于一个 初学者 能看懂的!!
我自己 慢慢研究吧!!
可是 上边的 代码 全报错 郁闷啊!!

记得文件名与公共类保持一致(大小写区分)

import java.util.*;
public class Zhidao {

//选择排序
public static void sort(int[] arr) {
//输出原始数据
System.out.println("排序前");
for(int d:arr)
System.out.printf("%4d",d);

int temp=0;//临时变量,用于交换
//过程,从0~9开始,每次找最小的放的前面
for(int i=0;i<arr.length-1;++i) {
temp=arr[i]; //假设为最小值
for(int j=i;j<arr.length;++j) {
if(temp>arr[j]) { //当有比最小值还小的,则置为最小值
//将之前的最小值与新的最小值交换,前面的则为有序
temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
}

System.out.println("\n排序后");
for(int d:arr)
System.out.printf("%4d",d);
System.out.println();
}

public static void main(String[] args) {

int[] array=new int[] {10,3,5,8,9,1,4,2,6,7};
//排序并输出
sort(array);
Scanner scanner=new Scanner(System.in);//用来接收控制台输入
int len=0; //数组长度
System.out.print("请输入数组长度:");
len=scanner.nextInt(); //接收到数组长度

if(len<=0) { //长度不合法,退出
System.out.println("输入错误");
System.exit(0);
}

int[] input_array=new int[len]; //创建数组
System.out.println("请依次输入数字,以回车区分:");

int count=0;
while(count<len) {
//依次为数组赋值
input_array[count++]=scanner.nextInt();
}

//排序并输出
sort(input_array);

}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-09-09
//从键盘输入的那段代码记住就行了,以后会学到,排序你查API也可以查到,
//for_each循环就跟平时的for循环一样,省了几句代码而己.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
//没有定义你的一组数,太麻烦了,直接用了一个赋了值的数组,
//就算定义了,要排序也得加入数组一个样的.
public class Test {

public static void main(String args[]){

int[] a={15,58,24,68,23};
Arrays.sort(a);//按升序排列(JAVA中己经有很多现成的排序方法可以直接调用)
for(int i:a){
System.out.print(i+"\t");//用for_each循环将数组输出.
}
//for_each可以改成
//for(int i=0;i<a.length;i++){
//System.out.print(i+"\t);
//}
//从控制台输入一个数
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
//上面代码是从键盘输入信息
System.out.println("请输入一个数");
String str=null;
try {
str=buf.readLine();//输入的数会以字符串的形式存在.
//在这里要抛出一个输入异常
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int c=Integer.parseInt(str);//将字符串转化成整数,在这里如果输入的不是
//一个数,会抛出NumberFormat异常(代码我就免啦)
int[] b=new int[a.length+1];
for(int i=0;i<b.length-1;i++){
b[i]=a[i];
}
b[b.length-1]=c;//将输入的数插入数组b
Arrays.sort(b);//按升序排列
for(int i:b){
System.out.print(i+"\t");//用for_each循环将数组输出.
}
}
}
第2个回答  2008-09-09
不用数组 用 treeMap 自动排序 不用你 写排序算法
treeMap.put(i,i);
第3个回答  2008-09-10
不停的Arrays.sort()
相似回答