我想不通是不是??? 那么麻烦干什么。数组排序用Static方法,Array.sort(数组) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要给数组乃至一组元素排序,方法可谓是n多。楼上的说的也是一个很方便的方法,因为Java把这些排序啊什么的常用数组功能都给集成了。不过应该是 Arrays.sort(int [] a) 而不是 Array.sort(int [] a)另外我没仔细看你的代码,(呵呵,比较讨厌看代码,这不最近还要看别人的project没办法)。你的错误是不是ArrayIndexOutOfBoundsException??如果是,那么你的for(i=0;i<=str.length; i++)每处都有错误,应该是for(i=0;i<str.length; i++)计数不要计错了,这是常见错误。另外你的排序方法算法不够先进,嗬嗬,自己去看看排序方面的算法吧。 你用bluedream2003(蓝梦) ( ) 讲的方法,还好用,我挺喜欢这个的。 标准冒泡法: int i,j,temp; for(i=0;i<str.length;i++){ for(j=i+1;j<str.length;j++){ if(str[i]>str[j]){ temp=str[j]; str[j]=str[i]; str[i]=temp; } } } for(i=0;i<str.length;i++){ System.out.println(str[i]); } 问题就出在了抛出的异常java.lang.ArrayIndexOutOfBoundsException: 3主要是: for(i=0;i<=str.length; i++) 改为for(i=0;i<str.length; i++)for(j=i;j<=str.length;j++); 一句后边的";"是干吗的?改为:for(j=i;j<str.length;j++)在你的算法的基础上,进行改写:import java.util.*;import java.io.*;public class ChoiceSort{ public static void main(String args[]) { int i,j,min; int[] str={31,89,16}; try{ for(i=0;i<str.length; i++) { min=i; for(j=i;j<str.length;j++); { if(str[min]>str[j]) { int zh=str[j]; str[j]=str[min]; str[min]=zh; min=j; } } } }catch(ArrayIndexOutOfBoundsException e){ e.printStackTrace(System.out); } for(i=0;i<str.length;i++) System.out.print(str[i]+" "); }} import java.util.*;import java.io.*;public class ChoiceSort{ public static void main(String args[]) { int i,j,min; int []str={31,89,16}; try{ for(i=0;i<str.length; i++) { min=i; for(j=i;j<str.length;j++); { if(str[min]>str[j]) { int zh=str[j]; str[j]=str[min]; str[min]=zh; min=j; } } } }catch(ArrayIndexOutOfBoundsException e){ System.out.println(e); } for(i=0;i<str.length;i++) System.out.print(str[i]+" "); } } 同样 for(j=i;j<str.length;j++); { if(str[min]>str[j]) { int zh=str[j]; str[j]=str[min]; str[min]=zh; min=j;那个for循环为什么带分号????? 把那个for循环的分号去掉就可以了! 请问org.apache.http.client在下载文件时如何取得文件大小? 就我这个没回复的,没人懂吗? Java JMF RTP 问题 关闭java窗体 进程javaw.exe仍然存在 请教java里面有没有类似vc++那样的控件管理器 String s = new String("a")创建了几个String Object? 各位帮忙,怎么“输入学生姓名和分数”触发不了? JWindow问题,急呀,请高手指点 新手的一个简单问题~ 这些书对于学习java还有用吗? 我应该怎么走脚下的路? identifier是什么意思? 多线程技术
计数不要计错了,这是常见错误。另外你的排序方法算法不够先进,嗬嗬,自己去看看排序方面的算法吧。
for(j=i+1;j<str.length;j++){
if(str[i]>str[j]){
temp=str[j];
str[j]=str[i];
str[i]=temp;
}
}
} for(i=0;i<str.length;i++){
System.out.println(str[i]);
}
改为:for(j=i;j<str.length;j++)
在你的算法的基础上,进行改写:
import java.util.*;
import java.io.*;
public class ChoiceSort
{
public static void main(String args[])
{
int i,j,min;
int[] str={31,89,16};
try{
for(i=0;i<str.length; i++)
{ min=i;
for(j=i;j<str.length;j++);
{
if(str[min]>str[j])
{
int zh=str[j];
str[j]=str[min];
str[min]=zh;
min=j;
}
}
}
}catch(ArrayIndexOutOfBoundsException e){
e.printStackTrace(System.out);
}
for(i=0;i<str.length;i++)
System.out.print(str[i]+" ");
}
}
import java.io.*;
public class ChoiceSort
{
public static void main(String args[])
{
int i,j,min;
int []str={31,89,16};
try{
for(i=0;i<str.length; i++)
{
min=i;
for(j=i;j<str.length;j++);
{
if(str[min]>str[j])
{
int zh=str[j];
str[j]=str[min];
str[min]=zh;
min=j;
}
}
}
}catch(ArrayIndexOutOfBoundsException e){
System.out.println(e);
}
for(i=0;i<str.length;i++)
System.out.print(str[i]+" ");
}
} 同样
{
if(str[min]>str[j])
{
int zh=str[j];
str[j]=str[min];
str[min]=zh;
min=j;那个for循环为什么带分号?????