冒泡排序(for循环)
从小到大的顺序
比较相邻的两个元素,如果第一个元素比第二个元素大话,就交换位置
已经将最大的值放到最后面了,进行的第一轮
第一层for循环控制的轮数 第二层for循环控制的交换的次数
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
//冒泡排序
int[] arr = {2,1,4,3};
for (int i = 0; i < arr.length -1; i++) {//控制的第几轮
//第一轮 交换几次 3次 i= 0 4-1-0
//第二轮 交换2次 i= 1 4-1-1
//第三轮 1次 i= 2 4-1-2
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(Arrays.toString(arr));
}
}
选择排序(for循环)
原理:找出最小值的索引下标,然后最小值和第一个数进行交换
然后再从剩余的里面再找最小值的下标,放到第二位
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
//选择排序
int[] arr = {2,1,4,3};
for (int i = 0; i < arr.length; i++) {//控制轮数
int minIndex = i;//最小值的索引
for (int j = i; j < arr.length; j++) {
//通过循环找到最小值的索引,赋值给minIndex这一个变量的
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
//在最外层的for循环里面进行交换
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
System.out.println(Arrays.toString(arr));
}
}