关于数组元素排序的问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 15:57:11
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. //由小到大来排序
这个程序设计因该是由小到大来排序的,可第一个是什么问题?
麻烦哪位高手把这个程序的实现步骤讲清楚点

for (int j =i+i; j<5;j++){
...}
这个循环的条件写错啦,应该是j=i+1而不是j=i+i;你再试试,程序思路没有问题

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,这个程序看起就应该会简单多了吧!用冒泡法排序哈,这个程序就是基本的原理!你给的那个程序也是用的冒泡法排序,但是整个全部分代码看上去不是很清晰。

可以告诉楼主一个冒泡排序方法
其他地方不变 中间的双重循环可改为
for (int i=0;i<4;i++){
for (int j =0; j<4-i;j++){