public static void main(String[] args) throws Exception {
bubblueSort(new int[]{2,5,6,1,8,5,-2,7});
selectSort(new int[]{2,5,6,1,8,5,-2,7});
}
public static void bubblueSort(int [] numbers) {
/**
* 思想: 相邻的两个数据两两比较,交换位置; 每轮交换完,就可以确定一个最大值在最右边
*/
for (int i = 0; i < numbers.length - 1; i++) {
for (int j = 0; j < numbers.length - i - 1; j++) {
if (numbers[j] > numbers[j + 1]) {
int temp = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(numbers));
}
public static void selectSort(int [] numbers) {
/**
* 思想: 确定每次递增的索引应该被哪个值来填, 即每轮比较出小的值来填坑
*/
for (int i = 0; i < numbers.length - 1; i++) {
int minIdx = i;
for (int j = i + 1; j < numbers.length; j++) {
if (numbers[minIdx] > numbers[j]) {
minIdx = j;
}
}
// 交换
int temp = numbers[i];
numbers[i] = numbers[minIdx];
numbers[minIdx] = temp;
}
System.out.println(Arrays.toString(numbers));
}
}