java 输入任意几个数字,怎样将他们从大到小排序?

Python09

java 输入任意几个数字,怎样将他们从大到小排序?,第1张

public static void main(String[] args) { Scanner scan = new Scanner(System.in)。

}

System.out.println("从大到小输出:")

for (int m = num.length-1m >=0m--) {

System.out.println(num[m])//从大到小输出

}

}

String[] str = scan.nextLine().split(" "),// 输入时以空格隔开数字

int[] num = new int[str.length]//初始化一个整型数组,长度为你输入数字的个数。

String[] str = scan.nextLine().split(" ")// 输入时以空格隔开数字

int[] num = new int[str.length]//初始化一个整型数组,长度为你输入数字的个数

for (int i = 0i <str.lengthi++) {

num[i] = Integer.parseInt(String.valueOf(str[i]))//将字符转换为int型再赋给整型数组

}

Arrays.sort(num)//升序排序

System.out.println("从小到大输出:")

for (int j = 0j <num.lengthj++) {

System.out.println(num[j])//从小到大输出

实现思路:就是输入的数字之间有固定的规则,之后读取后,依次进行大小比较,之后直到排序结束,输出结果即可:

import java.util.Scanner

public class ArrangedNumbers {

Integer arryNum[]

int count = 0/* 统计数字 */

boolean judgeIsNum = true

StringBuffer stringbuffer = new StringBuffer()

Scanner scanner = new Scanner(System.in)

String character

int memoryNum

/**

* 任意输入字符

*

* @return 返回输入的内容

*/

// public String inputNum() {

// return null

// }

/**

* 判断为数字

*/

public void judgmentFigures() {

while (judgeIsNum) {

System.out.println("请任意输入数字,以空格间隔,以回车结束!")

character = scanner.nextLine()

char[] figures = character.toCharArray()

for (int i = 0i <figures.lengthi++) {

if (!(figures[i] >= '1' &&figures[i] <= '9')

&&figures[i] != 32) {

judgeIsNum = true

break

}

judgeIsNum = false

}

if (!judgeIsNum)

stringbuffer.append(character)

}

String inputContent = stringbuffer.toString()

String[] numbers = inputContent.split("\\s+")

arryNum = new Integer[numbers.length]

for (int i = 0i <numbers.lengthi++) {

try {

memoryNum = Integer.parseInt(numbers[i])

arryNum[count] = new Integer(memoryNum).intValue()

count++

} catch (Exception e) {

/* 如果不出现异常,则说明肯定是数字 */

}

}

}

/**

* 对数字进行排序

*/

public void compareNum() {

for (int i = 0i <arryNum.lengthi++) {

for (int j = 0j <arryNum.length - i - 1j++) {

if (arryNum[j] >arryNum[j + 1]) {

Integer temp = arryNum[j]

arryNum[j] = arryNum[j + 1]

arryNum[j + 1] = temp

}

}

}

}

/**

* 按升序排列输出

*/

public void outputNum() {

System.out.println("按升序排序:")

for (int i = 0i <arryNum.lengthi++) {

System.out.println(arryNum[i])

}

}

}

//package com.color.program

public class JJArrangedNumbers {

public static void main(String args[]) {

ArrangedNumbers arrangeNumbers = new ArrangedNumbers()

arrangeNumbers.judgmentFigures()

arrangeNumbers.compareNum()

arrangeNumbers.outputNum()

}

}

--------运行结果-------

请任意输入数字,以空格间隔,以回车结束!

123 4 5 6 7 7,23

请任意输入数字,以空格间隔,以回车结束!

2 e adf 3 4

请任意输入数字,以空格间隔,以回车结束!

5 6 6 76 7

按升序排序:

5

6

6

7

76

上述公式可以修改为:=-*INT(/)。MONTH函数函

排序算法,基本的高级语言都有一些提供。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=0i<list.size()i++){

int k = 0

int temp = list.get(i)

for(int j=1j<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+" ")

}

}

}