Java冒泡排序 (bubble)
核心思想 : 元素之间比较换位. 冒泡排序的比较方式 : 相邻元素比较
代码如下
/**
* 排序实现
*/
public static void bubbleSort(int[] arr){
//外循环,次数固定的
for (int i = 0 ; i < arr.length ; i++){
//内循环,每次都要进行递减操作
for (int j = 0 ; j < arr.length - i - 1; j++){ //j 0-6
//比较换位
if (arr[j] > arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
[点击并拖拽以移动]
选择排序优化
优化 : 不是每次比较完成都要换位,获取到最值,用这个最值再换位值
代码如下
/**
* 选择排序的优化
* 最值获取:
* 利用元素
* 用索引
*/
public static void selectSort(int[] arr){
//获取数组的最值
for (int i = 1 ; i < arr.length ;i++){
//定义变量,保存数组的第一个元素
int min = arr[i-1]; //[1-1 = 0]
//定义记录最小值索引
int minIndex = i-1;
for(int j = i ; j < arr.length ; j++){
if (min > arr[j]){
//记录的索引
minIndex = j;
//记录最小值
min= arr[j];
}
}
//位置交换
if (minIndex != (i-1)){
int temp = arr[i-1];
arr[i-1] = arr[minIndex];
arr[minIndex] = temp;
}
}
}