/* 插入排序的变种,通过增量这一特性,减少了数据比较和移动次数,是一种优化的插入排序 */
void shellSort(std::vector<int>& vec)
{
int rate = 2;
int increNum = vec.size() / rate;
while(increNum)
{
for (int i = increNum; i < vec.size(); i++)
{
int tmp = vec[i];
int j = i - increNum;
for (; j >= 0; j -= increNum)
{
if (vec[j] <= tmp)
{
break;
}
else
{
vec[j + increNum] = vec[j];
}
}
vec[j+increNum] = tmp;
}
rate *= 2;
increNum = vec.size() / rate;
}
}希尔排序
最新推荐文章于 2024-06-04 00:42:18 发布
本文介绍了一种插入排序的优化版本——希尔排序。通过引入增量的概念,该算法显著减少了数据比较和移动的次数,从而提高了排序效率。
18万+

被折叠的 条评论
为什么被折叠?



