插入排序算法
插入排序算法演示:
对数列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