java怎么让数组的数字从大到小排序?

int a[]={20,10,50,40,30,70,60,80,90,100};
这怎么从小到大排序?

将数字从大到小排序的方法:

例如简一点的冒泡排序,将第一个数字和后面的数字逐个比较大小,如果小于,则互换位置,大于则不动。此时,第一个数为数组中的最大数。然后再将第二个数与后面的数逐个比较,以次类推。

示例代码如下: 
public class Test { 

public static void main(String[] args) { 
int [] array = {12,3,1254,235,435,236,25,34,23}; 
int temp; 
for (int i = 0; i < array.length; i++) { 
for (int j = i+1; j < array.length; j++) { 
if (array[i] < array[j]) { 
temp = array[i]; 
array[i] = array[j]; 
array[j] = temp; // 两个数交换位置 



for (int i = 0; i < array.length; i++) { 
System.out.print(array[i]+"  "); 


}

数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。

Java 语言中提供的数组是用来存储固定大小的同类型元素。

你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99

扩展资料

Java中利用数组进行数字排序一般有4种方法:

1、选择排序是先将数组中的第一个数作为最大或最小数,然后通过循环比较交换最大数或最小数与一轮比较中第一个数位置进行排序。

2、冒泡排序也是先将数组中的第一个数作为最大或最小数,循环比较相邻两个数的大小,满足条件就互换位置,将最大数或最小数沉底。

3、快速排序法主要是运用Arrays类中的Arrays.sort方法()实现。

4、插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。



温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-08-02

冒泡排序

<span style="font-size:18px;">package test;

public class Maopao {
public static void main(String[] args) {

int[] array={1,2,5,3,10,21,0};
getSortD_X(array);
getSortX_D(array);
}

public static void getSortD_X(int[] array){
for (int i = 0; i < array.length; i++) { for(int j=0;j<array.length-1;j++){ if(array[i]>array[j]){
int temp=array[i];

array[i]=array[j];
array[j]=temp;
}
}
}
System.out.print("从大到小:");

for (int i = 0; i < array.length; i++) { if(i==array.length-1){
System.out.println(array[i]);
}else{ System.out.print(array[i]+",");
}
}
} public static void getSortX_D(int[] array){ for (int i = 0; i <array.length; i++) { for(int 

j=0;j<array.length-i-1;j++){ if(array[j]>array[j+1]){
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}

System.out.print("从小到大:");
for (int i = 0; i < array.length; i++) { if(i==array.length-1){
System.out.println(array[i]);

}else{ System.out.print(array[i]+",");
}
}
}
}</span>

运行最后输出

从大到小:21,10,5,3,2,1,0
从小到大:0,1,2,3,5,10,21

扩展资料:

冒泡排序算法的原理如下:

    比较相邻的元素。如果第一个比第二个大,就交换他们两个。

    对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

    针对所有的元素重复以上的步骤,除了最后一个。

    持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

参考资料:冒泡排序-百度百科

本回答被网友采纳
第2个回答  推荐于2019-10-16

冒泡排序是最常用的数组排序算法之一,它排序数组元素的过程总是小数往前放,大数往后放,类似水中气泡往上升的动作,所以称作冒泡排序。如果我们要进行从大到小进行排序,只需要反过来操作即可,即把比较中教小的数往后排,较大数往前排。

示例代码如下:

public static void main(String[] args) {

int []array = {4,3,5,1,2};   //声明一个整型数组,并初始化

String str = "这几个数的排序为:"; //声明一个String类型的变量str,并初始化int temp; //声明一个整型变量

for(int j=array.length-1;j>0;j--) {    //交换两个相邻的数

for(int i=0;i<j;i++){

if(array[i]>array[i+1]){

temp = array[i];

array[i] = array[i+1];

array[i+1] = temp;
}
}
}
System.out.println(str);

for(int serial = 0;serial < array.length;serial++){

System.out.println(array[serial]);   //打印数组
}
}

拓展资料:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程  。

Java语言中虽然没有virutal关键字,但是使用虚方法的频率却远远大于C/C++语言,这意味着运行时对方法接收者进行多态选择的频率要远远大于C/C++语言,也意味着JIT编译器在进行一些优化,如方法内联时难度要远大于C/C++的静态优化编译器。

参考资料:百度百科-Java

本回答被网友采纳
第3个回答  推荐于2019-09-23

代码如下:

/*

* 在键盘上输入N个整数,试编制程序使该数组

* 中的数按照从大到小的次序排列。

*/

package stuClass;

import java.util.Arrays;

import java.util.Scanner;

public class Test09 {

public static void main(String[] args) {

Scanner input=new Scanner(System.in);

System.out.println("请输入数组长度:");

int length=input.nextInt();

int[] result=new int[length];

System.out.println("请输入数组元素:");

for(int i=0;i<length;i++) {

result[i]=input.nextInt();

}

Test09 tt=new Test09();

tt.reverse(result, 0, length-1);

}

public void reverse(int[] nums,int start,int end) {

Arrays.sort(nums);

while(start<end) {

int temp=nums[start];

nums[start]=nums[end];

nums[end]=temp;

start++;

end--;

}

System.out.println(Arrays.toString(nums));

}

}

代码效果:

本回答被网友采纳
第4个回答  推荐于2019-08-16

可以采用冒泡排序的方式代码如下所示:

public class Test {

public static void main(String[] args) {

int [] array = {10,3,1000,135,435,86,58,30,79};

int temp;

for (int i = 0; i < array.length; i++) {

for (int j = i+1; j < array.length; j++) {

if (array[i] < array[j]) {

temp = array[i];

array[i] = array[j];

array[j] = temp; 让两个数交换位置 }
}
}

for (int i = 0; i < array.length; i++) {

System.out.print(array[i]+"  ");最后输出数据
}
}
}

本回答被网友采纳
相似回答