此次的数组排序其实算法和之前的C语言一摸一样
复习一遍:
对于排序,只有冒泡排序是记得最牢的,有时候选择法知道其意义但是码出来还是有点露洞。
选择法排序
选择法排序的思路:
把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来
比较完后,第一位就是最小的
然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来
比较完后,第二位就是第二小的
以此类推
for (int j = 0; j < a.length-1; j++) {
for (int i = j+1; i < a.length; i++)
就这种模板
冒泡法排序
冒泡法排序的思路:
第一步:从第一位开始,把相邻两位进行比较
如果发现前面的比后面的大,就把大的数据交换在后面,循环比较完毕后,最后一位就是最大的
第二步: 再来一次,只不过不用比较最后一位
以此类推
for (int j = 0; j < a.length; j++) {
for (int i = 0; i < a.length-j-1; i++)
这里就是重点了,学好了很便捷
增强型for循环:
相较之前 写法更便捷 但是理解也上升一个层次 逼格也上升了。
示例:
int values [] = new int[]{18,62,68,82,65,9};
//常规遍历
for (int i = 0; i < values.length; i++) {
int each = values[i];
System.out.println(each);
}
//增强型for循环遍历
for (int each : values) {
System.out.println(each);
}
两种的打印效果一致
值得注意的是:
增强型for循环的int each : values 是指遍历整个数组依次赋值给each 也就是对于增强型for循环的理解 最直观还是常规遍历,把常规遍历的那几条语句缩减成这一条 要理解之后便于运用