一 算法描述
插入排序是一种针对少量元素的有效的排序算法。其基本操作是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。在《算法导论》一书中,作者以人们常用的排序扑克牌的例子来说明此算法:
“开始时,我们的左手为空并且桌子上的牌面向下。然后,我们毎次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。拿在左手上的牌总是排序好的。”
(图片截取自《算法导论》)
二 算法实现(c#)
1 用于整数数组的升序排序
public static void InsertionSort(int[] array)
{
if (array == null || array.Length < 2)
{
return;
}
int key;
for (int i = 1; i < array.Length; i&#