另一道关于数组的排序——冒泡有关问题
另一道关于数组的排序——冒泡问题
为什么外部循环是i++,而到了内部循环是j-- 而且,int j = num.length - 1;小弟实在看不懂。不是说数组的下标都是从0开始的,最后一个元素总是“数组名.length-1"吗?
------解决方案--------------------
i从0开始,当然是 i++ 了 ,j从最后一个元素位置开始,当然是 j-- 了,正因为数组元素下标是从 0开始,所以最后一个元素总是“数组名.length-1",比如说你的数组共7个元素,则最后一个元素的下标是6
package what;
import java.util.Arrays;
public class Text {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] num = new int[] { 1, 6, 5, 8, 9, 4, 7 };
System.out.println("num数组的长度是:" + num.length);
int temp = 0;// 用于两个数进行交换的中间变量
for (int i = 0; i < num.length; i++) {
// 外层循环开始 控制比较的开始位置 和比较的次数
for (int j = num.length - 1; j > i; j--) {
// 内层循环开始 对相邻的两个数进行比较 若后者比前者大则交换位置
if (num[j] > num[j - 1]) {
temp = num[j - 1];
num[j - 1] = num[j];
num[j] = temp;
}
}
}
System.out.println(Arrays.toString(num));
}
}
为什么外部循环是i++,而到了内部循环是j-- 而且,int j = num.length - 1;小弟实在看不懂。不是说数组的下标都是从0开始的,最后一个元素总是“数组名.length-1"吗?
------解决方案--------------------
i从0开始,当然是 i++ 了 ,j从最后一个元素位置开始,当然是 j-- 了,正因为数组元素下标是从 0开始,所以最后一个元素总是“数组名.length-1",比如说你的数组共7个元素,则最后一个元素的下标是6