冒泡算法:
public class Sort{
// 省略了其他的方法
public void bubbleSort(int[] arr){
for(int i = 0 ; i< arr.length-1; i++){
boolean flag = true;
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;
flag = false;
}
}
// 如果flag == true 则表示该数组已经有序,没有进行交换,退出循环
if(flag){
break;
}
}
}
}
选择算法:
public class Sort{
// 省略了其他的方法
public void selectSort(int[] arr){
int minValue ; // 最小值
int minIndex ; // 最小索引值
// 第一层循环控制比较的次数
for(int i = 0; i < arr.length - 1; i++){
minValue = arr[i];
minIndex = i;
// 第二层控制循环开始的索引位置
for(int j = i+1; j < arr.lengt; j++){
if(arr[j] < minValue){
minIndex = j;
minValue = arr[j];
}
}
if(minIndex != i){
arr[minIndex] = arr[i];
arr[i] = minValue;
}
}
}
}
插入算法:
public class Sort{
// 省略了其他的方法
public void insertSort(int arr){
int temp ;
for(int i = 1;i < arr.length-1; i++){
if(arr[i] < arr[i-1]){
// 进入循环
int index = i;
while(index > 0 && arr[index] < arr[index-1]){
// 进行交换
temp = arr[index];
arr[index] = arr[index-1];
arr[index-1] = temp;
index--;
}
}
}
}
}