http://www.cnblogs.com/dreamof/archive/2009/05/05/1450058.html
int[] arrint = new int[] { 9, 23, 03, 11, 77, 2 };
1 插入排序
如果目标是把n个元素的序列升序排列,那么采用插入排序存在最好情况和最坏情况。最好情况就是,序列已经是升序排列了,在这种情况下,需要进行的比较操作需(n-1)次即可。最坏情况就是,序列是降序排列,那么此时需要进行的比较共有n(n-1)/2次。插入排序的赋值操作是比较操作的次数加上 (n-1)次。平均来说插入排序算法的时间复杂度为O(n^2)。因而,插入排序不适合对于数据量比较大的排序应用。但是,如果需要排序的数据量很小,例如,量级小于千,那么插入排序还是一个不错的选择。
for (int i = 1, j = arrint.Count(); i < j;i++ )
{
int t=arrint[i];
int k = i;
while (k > 0 && arrint[k - 1] > t)
{
arrint[k] = arrint[k - 1];
--k;
}
arrint[k] = t;
}