avatar
InsertionSort和ShellSort# JobHunting - 待字闺中
a*e
1
请问下面两种不同 的InsertionSort的implementation有啥优劣么?我觉得都一样
哈。另外面试的时候如果问道shellsort下面那个基于InsertionSort的是不是就可以了
?发现现在要求sort linkedlist了。还在看基本算法。
void InsertionSort(vector &v)
{
int j;
for (int i = 1; i < v.size(); i++)
{
int cur = v[i];
for (j = i - 1; j >= 0 && v[j]>cur; j--)
{
v[j + 1] = v[j];
}
v[j+1] = cur;
}
}
void insertionSort2(vector &v)
{
int n = v.size();
for (int i = 1; i < n; i++)
{
for (int j = i; j > 0 && v[j] < v[j - 1]; j--)
{
int tmp = v[j];
v[j] = v[j - 1];
v[j - 1] = tmp;
}
}

}
void shellsort(vector &v)
{
int n = v.size(), h=1;

while (h < n / 3) h = 3 * h + 1;
while (h >= 1)
{
for (int i = h; i < n; i++)
{
for (int j = i; j >= h&& v[j] < v[j - h]; j -= h)
{
int tmp = v[j];
v[j] = v[j - h];
v[j - h] = tmp;
}
}
h = h / 3;
}
}
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。