冒泡排序和选择排序是比较简单的排序算法,也是面试中经常会问到的,下面我们总结一下。

冒泡排序

//需要遍历获得最小值的次数,当要排序N个数,经过N-1次遍历后,已经是有序数组
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;
}
}
}

选择排序

//需要遍历获得最小值的次数,当要排序N个数,经过N-1次遍历后,已经是有序数组
for(int i = 0 ;i < arr.length - 1;i++){
int temp = 0;//中间变量
int index = i;//用来保存最小值的索引
//寻找第i个小的值
for(int j = i+1;j<arr.length;j++){
if(arr[j]<arr[index]){
index = j;
}
}
//将找到第i个小的数放到第i个位置
temp = arr[index];
arr[index] = arr[i];
arr[i] = temp;
}