首先创建一个java数组
public static void main(String[] args) { int[] arr={9,8,7,6,5,4}; System.out.println(Arrays.toString(arr)); }
输出的结果:
第二步:
写一个for循环
for (int i = 0; i < arr.length-1; i++) { if(arr[i]>arr[i+1]){ int m=arr[i]; arr[i]=arr[i+1]; arr[i+1]=m; } }
循环的次数就是数组的长度减去一,判断两个相邻数,如果arr[0]>arr[1]那么两个值交换,并继续下一次判断,arr[1]和arr[2]进行比较,一直到没有再需要交换的
9已经到最后一位了public static void main(String[] args) { int[] arr={9,8,7,6,5,4}; for (int i = 0; i < arr.length-1; i++) { if(arr[i]>arr[i+1]){ int m=arr[i]; arr[i]=arr[i+1]; arr[i+1]=m; } } System.out.println(Arrays.toString(arr)); for (int i = 0; i < arr.length-1; i++) { if(arr[i]>arr[i+1]){ int m=arr[i]; arr[i]=arr[i+1]; arr[i+1]=m; } } System.out.println(Arrays.toString(arr)); }
通过以上代码又可以发现什么呢?
8到了倒数第二了,而我们的程序好像写了两次,那只要重复六次好像就完成了,那我们再在外面套一个循环
最终结果:
public static void main(String[] args) { int[] arr={9,8,7,6,5,4}; for (int j = 0; j < arr.length-1; j++) { for (int i = 0; i < arr.length-1; i++) { if(arr[i]>arr[i+1]){ int m=arr[i]; arr[i]=arr[i+1]; arr[i+1]=m; } } } System.out.println(Arrays.toString(arr)); }