关于数组元素排序的问题
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. //由小到大来排序
这个程序设计因该是由小到大来排序的,可第一个是什么问题?
麻烦哪位高手把这个程序的实现步骤讲清楚点 展开
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. //由小到大来排序
这个程序设计因该是由小到大来排序的,可第一个是什么问题?
麻烦哪位高手把这个程序的实现步骤讲清楚点 展开
4个回答
展开全部
冒泡排序的基本思想是用一个循环嵌套从第一个数开始一直比较到最后一个数,比较中如果发现前面的数大于后边的数则交换它们的顺序
其实Java提供了数组排序的方法:void java.util.Arrays.sort(Object[] obj);默认就是升序排列的,你可以试试
其实Java提供了数组排序的方法:void java.util.Arrays.sort(Object[] obj);默认就是升序排列的,你可以试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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,这个程序看起就应该会简单多了吧!用冒泡法排序哈,这个程序就是基本的原理!你给的那个程序也是用的冒泡法排序,但是整个全部分代码看上去不是很清晰。
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++){
if(obj[j]>obj[j+1]){
tmp=obj[j+1];
obj[j+1]=obj[j];
obj[j]=tmp;
}
}
}
原理很简单,从第一个开始比,比到最后一个,把小的挨着挨着排到前面
其他地方不变 中间的双重循环可改为
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;
}
}
}
原理很简单,从第一个开始比,比到最后一个,把小的挨着挨着排到前面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for (int j =i+i; j<5;j++){
...}
这个循环的条件写错啦,应该是j=i+1而不是j=i+i;你再试试,程序思路没有问题
...}
这个循环的条件写错啦,应该是j=i+1而不是j=i+i;你再试试,程序思路没有问题
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询