原理 把所有的元素分为两组,已经排序的和未排序的;找到未排序的组中的第一个元素,向已经排序的组中进行插入;倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待 插入元素放到这个位置,其他的元素向后移动一位; 代码示例 public class Insertion { public static void sort(Comparable[] a) { for (int i = 1; i < a.length; i++) { for (int j = i; j > 0; j--) { if(greater(a[j-1], a[j])) { exch(a, j-1, j); } else { break; } } } } private static boolean greater(Comparable v, Comparable w) { return v.compareTo(w) > 0; } private static void exch(Comparable[] a, int i, int j) { Comparable t = a[i]; a[i] = a[j]; a[j] = t; } public static void main(String[] args) { Integer[] a = { 5, 6, 2, 0, 19, 33, 1, 8 }; Insertion.sort(a); System.out.println(Arrays.toString(a)); } }