插入排序的主要思想与扑克牌类似,即把一张扑克牌插入一个有序的序列中去。具体算法如下: static void InsertionSort(int[] a) { for (int i = 1; i < a.Length; i++) { int key = a[i]; int j = i - 1; while ((j>=0)&&(key < a[j])) { a[j + 1] = a[j]; j--; } a[j+1] = key; } } 值得注意的是while判断是要把j>=0这个条件放在key<a[j]前面,否则会数组越界