黑马程序员技术交流社区
标题:
一个冒泡排序的头痛问题!!!!!!!!!!!!!!!!!!!!!!
[打印本页]
作者:
梁健
时间:
2011-11-13 21:07
标题:
一个冒泡排序的头痛问题!!!!!!!!!!!!!!!!!!!!!!
public class MaoPao{
public static void main(String[] args){
int arr[]={28,79,54,33,65,31,21};
for(int j=arr.length-1;j>1;j++){
for(int i=0;i<j;i++){
if(arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
编译的时候没问题,每次运行就会出现溢出现象,哪里出错了,希望能有达人帮忙指正下。
作者:
沙铁健
时间:
2011-11-13 21:24
晕 用 断点 设置 看变量啊
作者:
wangqing
时间:
2011-11-13 21:27
第一个for不应该是j++吧
作者:
贺洪京
时间:
2011-11-13 21:36
package heima.cmo;
//这是我给你改好的代码,你对照一下
public class MaoPao{
public static void main(String[] args){
int arr[]={28,79,54,33,65,31,21};
for(int j=arr.length-1;j>=0;j--){//这里的循环错了你以前是J++,这样会造出死循环,还有你不能让J>1因为这样你数组第一个和第二个元素就无法比较了。
for(int i=0;i<j;i++){
if(arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
作者:
杨玉揆
时间:
2011-11-13 21:43
public class MaoPao{
public static void main(String[] args){
int arr[]={28,79,54,33,65,31,21};
for(int j=arr.length-1;j>=0;j--)
{
for(int i=0;i<j;i++){
if(arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
System.out.print(arr[j]+" ");
}
}
}
你看看这个代码 你是在第一个循环的时候搞错了
作者:
陈超
时间:
2011-11-13 22:30
j++改为j--;
作者:
刘博
时间:
2011-11-13 22:36
咱能写代码的时候有点层次感吗?让我们这初学者情何以堪······
作者:
清秋
时间:
2011-11-14 12:55
往论坛上贴代码的时候放“[code][/code]”里。不然。看起来太费力了
作者:
王新春
时间:
2011-11-14 13:37
是因为你这个for(int j=arr.length-1;j>1;j++)循环有问题,j的值就会从6开始一直增加,这样就会出现死循环,而里面的循环
for(int i=0;i<j;i++){
if(arr
>arr[i+1]){
int temp=arr
;
arr
=arr[i+1];
arr[i+1]=temp;
中i 的值是小于j 的值得,所以i 的值随着j 的值不断增加而增加,所以就会出现下标越界的问题。
所以正确的是
for(int j=arr.length-1;j>1;j--)
作者:
骚灵小情歌
时间:
2011-11-14 13:38
清秋同学的建议不错
作者:
赵燕燕
时间:
2011-11-14 19:00
出现溢出问题,很有可能是使用了角标不存在的数组元素,这时候就应该去检查循环临界值,for(int j=arr.length-1;j>1;j++),很容易会发现应该是j--,对于j>1处,如果不知道在什么时候结束,就把你写的临界值 j=2 带入试试,最后一次比较肯定是只比较一次,而你写的比较了两次
作者:
xiwangliujiao
时间:
2011-11-14 19:21
应该是j--啊?建议以后别这样写了,容易搞错的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2