java冒泡排序解释

2024-11-18 20:44:13
推荐回答(4个)
回答1:

你这是降序排列,x[j]i=1的时候开始第一次排序
相邻两个值比较,随着j不断增大,小的值一直在往后走,第一次排序结果是:51 10 65 23 8 4
最小的4到了最后
i=2时开始第二次排序
结果是:51 65 23 10 8 4
i=3时
结果是:65 51 23 10 8 4
注意,这个时候排列虽然已经出来了,但是i并没有超出ix.length是6,i的值变化是1 2 3 4 5 也就是说排列了5次,为什么是5次呢,因为排列一次最小的到最后面,五个最小的到了后面,剩下的一个肯定是最大的。
注意,这里的最后面并不是所有的数的最后面,而且剩下的数的最后面,4到最后面以后需要排列的就剩下了51 10 65 23 8 这五个数,这就是为什么j

回答2:

冒泡排序其实就是设定一个中间变量利用循环升序或者降序一个数组内的数字而已,很好理解啊

回答3:

//定义一个整数数组
int x[]={10,51,4,65,23,8};
//定义一个整形变量,作为临时存放量
int temp;
//开始遍历数组里的所有的元素,遍历x.length-1次
for(int i=1;i//每次遍历前(x.length-i+1)个元素(因为下面的循环用的是x[j]和x[j+1]比较)
for(int j=0;j//前x.length-i个元素两两比较,把较大的放在前面
if(x[j]temp=x[j];
x[j]=x[j+1];
x[j+1]=temp;
}
}
//打印出数组所有的元素
for(int i=0;iSystem.out.print(x[i]+" ");
}

回答4:

冒泡白须的过程其实很简单,首先将第一个数字跟第二个数字进行比较,如果为逆序,就是不是你最终排序的顺序,就把两个数字交换,然后比较第二个跟第三个数字,依次类推,
直到第n-1个数字和第n个数字进行比较完成为止。以上过程为第一趟冒泡排序,(按照你这个来说)其结果是把最小的放在了最后面,然后进行第二趟冒泡排序,对前n-1个数字进行
同样的操作,其结果是吧第二小的放到了倒数第二个位置上,也就是n-1的位置上,排序过程需要k(1<=k