关于数组元素排序的问题

classArraySort{publicstaticvoidmain(String[]args){int[]obj=newint[5];for(inti=0;i<5;i... class ArraySort{
public static void main(String[] args){
int [] obj=new int[5];
for (int i=0;i<5;i++)
{obj[i]=Integer.parseInt(args[i]);
}
int tmp=0;
for (int i=0;i<5;i++){
for (int j =i+i; j<5;j++){
if(obj[i]>obj[j]){
tmp=obj[j];
obj[j]=obj[i];
obj[i]=tmp;
}
}
}
for (int i=0;i<5;i++){
System.out.print(obj[i]+".");
}
System.out.println();
}
}
随后运行.
D:\java\lesson>java ArraySort 32 3 5 7 8
3.5.8.7.32. //没有按由小到大来排序
D:\java\lesson>java ArraySort 32 3 5 8 7
3.5.7.8.32. //由小到大来排序
这个程序设计因该是由小到大来排序的,可第一个是什么问题?
麻烦哪位高手把这个程序的实现步骤讲清楚点
展开
 我来答
百度网友997ab03
2008-08-22 · TA获得超过629个赞
知道小有建树答主
回答量:264
采纳率:0%
帮助的人:330万
展开全部
冒泡排序的基本思想是用一个循环嵌套从第一个数开始一直比较到最后一个数,比较中如果发现前面的数大于后边的数则交换它们的顺序
其实Java提供了数组排序的方法:void java.util.Arrays.sort(Object[] obj);默认就是升序排列的,你可以试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浅浅dě夕阳
2008-08-22
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
public class test{
public static void main(String args[]){
method a=new method();
a.start();
}
}
class method extends Thread{
public void run(){
int a[]={32,3,5,7,8};
int i,j;
int l=a.length;
for(i=0;i<l-1;i++)
for(j=i+1;j<l;j++)
if(a[i]>a[j]){
int t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<l;i++)
System.out.println(a[i]);
}
}
LZ,这个程序看起就应该会简单多了吧!用冒泡法排序哈,这个程序就是基本的原理!你给的那个程序也是用的冒泡法排序,但是整个全部分代码看上去不是很清晰。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wedsaq01
2008-08-22
知道答主
回答量:35
采纳率:0%
帮助的人:26.2万
展开全部
可以告诉楼主一个冒泡排序方法
其他地方不变 中间的双重循环可改为
for (int i=0;i<4;i++){
for (int j =0; j<4-i;j++){
if(obj[j]>obj[j+1]){
tmp=obj[j+1];
obj[j+1]=obj[j];
obj[j]=tmp;
}
}
}
原理很简单,从第一个开始比,比到最后一个,把小的挨着挨着排到前面
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没事儿偷着崩溃
2008-08-22 · TA获得超过714个赞
知道小有建树答主
回答量:300
采纳率:0%
帮助的人:0
展开全部
for (int j =i+i; j<5;j++){
...}
这个循环的条件写错啦,应该是j=i+1而不是j=i+i;你再试试,程序思路没有问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式