为了账号安全,请及时绑定邮箱和手机立即绑定

想问一下万能的网友,这下面的是不是冒泡排序,按理说第一次排序会把99放到最后面的啊,可是为什么这个99被它吃了?吃了也就算了,居然还没有排序

public class Main {
     public static void main(String[] args) {
          int[] arr = {99,44,77,33,55,88,66};
            for(int y = 0; y < arr.length; y++){
                if(arr[y] > arr[y+1]){
                    int temp = arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1] = temp;
                }
                    System.out.print(arr[y]+",");
            }
    }
}

正在回答

1 回答

for循环里,到y=6的时候,此时arr[6]=99,但arr[y+1]超过此数组的范围了。你把arr[6]和arr[y+1]交换,自然arr[6]会不见了。

1 回复 有任何疑惑可以回复我~
#1

qq_慕少2383888 提问者

索引越界?
2019-11-02 回复 有任何疑惑可以回复我~
#2

慕粉2009189 回复 qq_慕少2383888 提问者

int temp=0; for(int i=0;i<arr.length;i++) { for(int j=i+1;j<arr.length;j++) { if(arr[i]>arr[j]) { temp=a[i]; a[i]=a[j]; a[j]=a[i]; } } }
2019-11-12 回复 有任何疑惑可以回复我~
#3

慕粉2009189 回复 慕粉2009189

if(arr[i]>arr[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } 打错了不好意思
2019-11-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

想问一下万能的网友,这下面的是不是冒泡排序,按理说第一次排序会把99放到最后面的啊,可是为什么这个99被它吃了?吃了也就算了,居然还没有排序

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信