动图演示
使用场景:数据有序程度越高,效率越高
java代码实现
import java.util.Arrays;/*** 插入排序*/
public class InsertSort {private static int[] insertSort(int[] arr) {if (arr==null||arr.length<2){return arr;}// 从下标为1的元素开始选择合适的位置插入,因为下标为0的只有一个元素,默认是有序的for (int i = 1; i < arr.length; i++) {// 记录要插入的数据int tmp = arr[i];// 从已经排序的序列最右边的开始比较,找到比其小的数int j = i;while (j > 0 && tmp < arr[j - 1]) {arr[j] = arr[j - 1];j--;}// 存在比其小的数,插入if (j != i) {arr[j] = tmp;}}return arr;}public static void main(String[] args) {int[] arr={5,0,10,8,6,13,9,7,12,4};System.out.println("排序前:"+ Arrays.toString(arr));int[] sort = insertSort(arr);System.out.println("排序后:"+Arrays.toString(sort));}
}