插入排序思想:
依次访问数组中的每一个元素,将其插入到前面合适的位置(类似于打扑克的时候,一张一张地摸牌,将新摸到的牌插入到合适的位置)
Java代码实现:
public class insertionSort {
//插入排序
public static void insertionsort(int[] arr){
if(arr == null || arr.length < 2){
System.out.println("此数组无法排序!");
return;
}
//依次访问未排好的数据
for(int i = 1; i < arr.length; i++){
//将这个数据与前一个数据比较
for(int j = i; j > 0; j--){
//如果这个数据小于前一位,就与前一位交换位置,并继续向前比较
if(arr[j] < arr[j - 1]){
swap(arr, j,j - 1);
}else{
break;
}
}
}
}
//交换两个数在数组中的位置
public static void swap(int[] arr, int n, int m){
int temp = arr[n];
arr[n] = arr[m];
arr[m] = temp;
}
//主方法
public static void main(String[] args){
int[] arr = {2,1,4,3,6,4,5};
insertionsort(arr);
System.out.println(Arrays.toString(arr));
}
}
以上内容为个人学习总结,如有错误,欢迎指正。