当前位置:编程学习 > JAVA >>

java从键盘读入10个整数,并对它们进行排序,按由大到小的顺序从控制台输出

答案:public class Test { public static void main(String[] args) { while (true) { BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); System.out.println("请输入你要排序的数字,用逗号分隔:"); String s = ""; try { s = br.readLine(); //此处可以验证输入的是否符合要求,略 String[] newstr = s.split(","); int[] aa=new int[newstr.length]; int k=0; for(String s1:newstr) { aa[k]=Integer.parseInt(s1); k++; } Arrays.sort(aa); for(int s2:aa) { System.out.println(s2); } } catch (IOException e) { System.out.println("程序出错:" + e.getMessage()); } } } }
其他:请考虑使用快速排序
例如:
public class QuickSort {

	private static int[] input = { 3, 5, 3, 76, 45, 23, 7, 44, 25, 54 };

	private static void exchange(int from, int to) {
		int temp = input[from];
		input[from] = input[to];
		input[to] = temp;
	}

	private static int partition(int p, int r) {
		int x = input[r];
		int i = p - 1;
		for (int j = p; j < r; j++) {
			if (input[j] <= x) {
				i++;
				exchange(i, j);
			}
		}
		exchange(i + 1, r);
		return i + 1;
	}

	private static void quickSort(int p, int r) {
		if (p < r) {
			int q = partition(p, r);
			quickSort(p, q - 1);
			quickSort(q + 1, r);
		}
	}

	private static void printResult() {
		for (int i = 0; i < input.length; i++) {
			System.out.println("Index : " + i + "; Value = " + input[i]);
		}
	}

	// nlgn
	public static void main(String[] args) {
		quickSort(0, input.length - 1);
		printResult();
	}
} 先使用循环用Scanner接收值存储在数组里面 然后 把每个值取出来做判断 if(a〉b)temp=a;a=b;b=temp;(需要用嵌套循环) 同学,要厚道,你怎么能没分呢

上一个:JAVA简单文件加密 求JAVA源代码
下一个:java ^ 什么意思

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,