题目从小到大排序数组 {6,3,8,2,9,1}
原理:小的数放左边,大的数放右边。
思路:利用 ”for 循环“ 将第一个数与第二个数作比较,如果第一个数比第二个数大则对调位置,反之则不改变。进行下一个判断
“for 循环”的嵌套循环。
外层循环控制排序的趟数: for(int i = 0;i < arr.length - 1;i++)
趟数为需要排序的字符多少,没进行一趟,则排出一个最大值。
内层循环控制每一趟排序的次数:for(int j = 0;j < arr.length - 1 - i;j++)
每一趟排出一个最大值,相应的趟内少排序一次。
第一趟排序:
第一次:6与3比较,6大于3,对调位置 {3,6,8,2,9,1}
第二次:6与8比较,6不大于8,不做调换 {3,6,8,2,9,1}
第三次:8与2比较,8大于2 ,对调位置 {3,6,2,8,9,1}
第四次:8与9比较,8不大于9,不做对调 {3,6,2,8,9,1}
第五次:9与1比较,9大于1,对调位置 {3,6,2,8,1,9}
第二趟排序:
第一次:3与6比较,不做对调 {3,6,2,8,1,9}
第二次:6与2比较,对调位置 {3,2,6,8,1,9}
第三次:6与8 比较,不做对调 {3,2,6,8,1,9}
第四次:8与1比较,对调位置 {3,2,6,1,8,9}
第三趟排序:
第一次:3与2 比较,对调位置 {2,3,6,1,8,9}
..................
第五趟排序:
第一次:2与1比较,对调位置 {1,2,3,6,8,9}
.......................................................................................................................................................................................................
遍历:两个代码为相等的!!!
== int[] arr = new int[]{6, 4, 8}; for (int num = 0; num < arr.length; num++){ System.out.println(arr[num] ); } == for (int num : arr) { System.out.println(num); }
具体代码
public class maopaopaixu { public static void main(String[] args) { int[] arr={6,3,8,2,9,1}; System.out.println("排序前数组为:"); for (int num = 0; num < arr.length; num++){ System.out.print(num+" "); } for(int i = 0;i < arr.length - 1;i++){//外层循环控制排序趟数 for(int j = 0;j < arr.length - 1 - i;j++){//内层循环控制每一趟排序多少次 if(arr[j] > arr[j + 1]){ int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } System.out.println(); System.out.println("排序后的数组为:"); for (int num = 0; num < arr.length; num++){ System.out.print(num+" "); } } }