插入排序算法演示:
对数列9、1、5、3、8按从小到大排序:
对第2个数排序 | ||||
---|---|---|---|---|
9 | 1 | 5 | 3 | 8 |
9 | 5 | 3 | 8 | |
9 | 5 | 3 | 8 | |
1 | 9 | 5 | 3 | 8 |
对第3个数排序 | ||||
1 | 9 | 3 | 8 | |
1 | 9 | 3 | 8 | |
1 | 5 | 9 | 3 | 8 |
对第4个数排序 | ||||
1 | 5 | 9 | 8 | |
1 | 5 | 9 | 8 | |
1 | 5 | 9 | 8 | |
1 | 3 | 5 | 9 | 8 |
对第5个数排序 | ||||
1 | 3 | 5 | 9 | |
1 | 3 | 5 | 9 | |
1 | 3 | 5 | 8 | 9 |
算法:
public class InsertionSorter
{
public void Sort(int[] arr)
{
for (int i = 1; i < arr.Length; i++)
{
int t = arr[i];
int j = i;
while ((j > 0) && (arr[j - 1] > t))
{
arr[j] = arr[j - 1];//交换顺序
--j;
}
arr[j] = t;
}
}
}
参考:http://www.cnblogs.com/kkun/archive/2011/11/23/2260265.html