折半插入排序算法(改进的直接插入排序算法)
直接插入排序算法,是一个查找和插入的过程,其中的查找过程可以使用折半查找方法来代替,因为插入排序的序列也是一个有序的序列
直接插入排序算法的连接
有序序列的折半查找算法的链接
c#代码
#region 折半插入排序算法
public static void HalfInsertSort(ref int[] array)
{
for(int i=2;i<array.Length;++i)
{
array[0] = array[i]; //或者也可以添加if (array[i] < array[i - 1])先行判断
int low = 1;
int high = i - 1;
while(low <= high)
{
int mid = (low + high) / 2;
if (array[0] < array[mid]) high = mid - 1;
else low = mid + 1;
}
int j=0;
for (j = i - 1; j >= high + 1; --j)
{
array[j + 1] = array[j];
}
array[j + 1] = array[0];
}
}
#endregion
本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。