package seventeen;
import java.util.Arrays;
public class a {
public static void main(String[] args) {
int[] arr = {2,1,3,8,6,9,5};
System.out.println(" "+Arrays.toString(arr));
for(int x = 0; x < arr.length; x++)
{
int y;
for( y = 0; y < arr.length-x-1; y++)
{
if(arr[y] > arr[y+1])
{
int s = arr[y];
arr[y] = arr[y+1];
arr[y+1] = s;
}
}
System.out.print(arr[y]+" ");
System.out.println(Arrays.toString(arr));
}
}
}
输出的结果为:
[2, 1, 3, 8, 6, 9, 5]
9 [1, 2, 3, 6, 8, 5, 9]
8 [1, 2, 3, 6, 5, 8, 9]
6 [1, 2, 3, 5, 6, 8, 9]
5 [1, 2, 3, 5, 6, 8, 9]
3 [1, 2, 3, 5, 6, 8, 9]
2 [1, 2, 3, 5, 6, 8, 9]
1 [1, 2, 3, 5, 6, 8, 9]
仔细分析【】号中的元素是一个接一个的比较,由于y++的缘故等比较最后一个是其元素角标为arr[y],这时
arr[y]以比较完它的结果以确定,输出arr[y],此时的arr[y]就是数组中的最后一个元素。
我表达的不清楚,希望你能领悟。
|