java中怎样对一个整数数组进行降序排序

如题所述

int[] array = {1,2,5,8,12}; //随便定义一个数组,用冒泡排序法

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

或者你有一个数组
List list = new ArrayList();
list.sort();
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-16
方法很多 java有自带的方法sort 同时也可以自己写排序算法
冒泡
快排
选择
插入
推排
等等
相应的算法你可以自己去搜索

冒泡排序的代码:
public class Arraysort1{
public static void main(String args[]){
int score[]={67,89,87,69,90,100,75,90};
long starttime=System.nanoTime();

for(int i=1;i<=100000;i++){
sort(score);
}
long endtime=System.nanoTime();
System.out.println("Time taken by program:"+(endtime-starttime)+"ns");
}

public static void sort(int temp[]){
for(int i=1;i<temp.length;i++){
for(int j=temp.length-1;j>i;j--){
if(temp[j]<temp[j-1]){
int x=temp[j];
temp[j]=temp[j-1];
temp[j-1]=x;
}
}
}
}
快速排序的代码:
public class Arraysort2{
public static void main(String args[]){
int score[]={67,89,87,69,90,100,75,90};
long starttime=System.nanoTime();

for(int i=1;i<=100000;i++){
java.util.Arrays.sort(score);
}

long endtime=System.nanoTime();
System.out.println("Time taken by program:"+(endtime-starttime)+"ns");
}
第2个回答  2013-05-15
int[] array = {1,2,5,8,12}; //随便定义一个数组,用冒泡排序法

for (int i = 0;i < array.length;i++){
for(int j = i;j < array.length;j++){
if (array[i] < array[j]){
int temp = array[i];
array[i] = array[j];
array[i] = temp;
}
}
}本回答被网友采纳
第3个回答  2013-05-16
二分排序
例:
int []a={4,2,1,6,3,6,0,-5,1,1};
int i,j;
int low,high,mid;
int temp;
for(i=1;i<10;i++){
temp=a[i];
low=0;
high=i-1;
while(low<=high){
mid=(low+high)/2;
if(a[mid]>temp)
high=mid-1;
else
low=mid+1;
}
for(j=i-1;j>high;j--)
a[j+1]=a[j];
a[high+1]=temp;
}
for(i=0;i<10;i++){
System.out.printf("%d",a[i]);
}