如何让数组降序排列

cooleyesss 2006-08-21 04:44:10
最简单 比如说 a[]={3,2,1,5,4}
增序排序后 要让 b[]为{5,4,3,2,1}
...全文
653 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigc2000 2006-08-21
  • 打赏
  • 举报
回复
reverse()
lcllcl987 2006-08-21
  • 打赏
  • 举报
回复
赞同ykzhujiang(朱朱)的方法
cooleyesss 2006-08-21
  • 打赏
  • 举报
回复
to upstair:
这是啥=。= 不好意思 我是初学
wallex 2006-08-21
  • 打赏
  • 举报
回复
public int[] sort()
{
int[] a={3,2,1,5,4};
Arrays.sort(a);//(1)得到升序排序的数组
int[] b = new int[a.length];
for (int i=0; i<a.length/2+1; i++)
{
b[a.length-i-1]=a[i];
b[i]=a[a.length-i-1];
}//(2)把升序的数组倒转
for (int i=0; i<b.length; i++)
System.out.print(b[i]);
System.out.println();
return b;
}
对于(2),你也可以用Collections.reverse(List list),但先要转成List
wallex 2006-08-21
  • 打赏
  • 举报
回复
to upstair:
用a.length/2+1可以对b数组前后2端赋值,这样快点
当然也可以用,这只是从后往前单方向赋值
for (int i=0; i<a.length; i++)
b[a.length-i-1]=a[i]
cooleyesss 2006-08-21
  • 打赏
  • 举报
回复
问的就是如何倒置=。=
cooleyesss 2006-08-21
  • 打赏
  • 举报
回复
for (int i=0; i<a.length/2+1; i++)
为什么a.length要/2+1?
jackra 2006-08-21
  • 打赏
  • 举报
回复
LZ可以看看数据结构与算法的书.排序是通用算法.
java.util.sort()可以排序,然后倒置过来就行.
wallex 2006-08-21
  • 打赏
  • 举报
回复
public int[] sort()
{
int[] a={3,2,1,5,4};
Arrays.sort(a);
int[] b = new int[a.length];
for (int i=0; i<a.length/2+1; i++)
{
b[a.length-i-1]=a[i];
b[i]=a[a.length-i-1];
}
for (int i=0; i<b.length; i++)
System.out.print(b[i]);
System.out.println();
return b;
}
ykzhujiang 2006-08-21
  • 打赏
  • 举报
回复
java.util.Arrays.sort(T[] a, Comparator<? super T> c)
healer_kx 2006-08-21
  • 打赏
  • 举报
回复
b = a.copy
b内排序。最大的放在最前面

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧