SDUT 3403 数据结构实验之排序六:希尔排序
2016-08-06 09:59
295 查看
点击打开题目链接
#include <bits/stdc++.h>
using namespace std;
int pp[10010];
int main()
{
int n;
while(cin >> n)
{
int i;
for( i = 0; i < n; i++)
{
scanf("%d", &pp[i]);
}
for(int d = n/2; d > 0; d/=2)//希尔增量序列
{
for(int p = d; p < n; p++)//插排
{
int tmp = pp[p];
for(i = p; i >= d && pp[i-d] > tmp; i -= d)
pp[i] = pp[i - d];
pp[i] = tmp;
}
if(d == n/2)
{
for(int j = 0; j < n; j++)
{
(j == 0) ? cout << pp[j]: cout << ' ' << pp[j];
}
cout << endl;
}
}
for(i = 0; i < n; i++)
{
(i == 0) ? cout << pp[i]: cout << ' ' << pp[i];
}
cout << endl;
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int pp[10010];
int main()
{
int n;
while(cin >> n)
{
int i;
for( i = 0; i < n; i++)
{
scanf("%d", &pp[i]);
}
for(int d = n/2; d > 0; d/=2)//希尔增量序列
{
for(int p = d; p < n; p++)//插排
{
int tmp = pp[p];
for(i = p; i >= d && pp[i-d] > tmp; i -= d)
pp[i] = pp[i - d];
pp[i] = tmp;
}
if(d == n/2)
{
for(int j = 0; j < n; j++)
{
(j == 0) ? cout << pp[j]: cout << ' ' << pp[j];
}
cout << endl;
}
}
for(i = 0; i < n; i++)
{
(i == 0) ? cout << pp[i]: cout << ' ' << pp[i];
}
cout << endl;
}
return 0;
}
相关文章推荐
- (模板题)sdut 3403 数据结构实验之排序六:希尔排序(希尔排序)
- SDUT-3403 数据结构实验之排序六:希尔排序
- SDUT OJ 3403 数据结构实验之排序六:希尔排序
- 3403 数据结构实验之排序六:希尔排序
- SDUT 数据结构实验之排序六:希尔排序
- 3403 数据结构实验之排序六:希尔排序
- SDUT OJ 3403数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序 【OJ--3403】
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- SDUT 数据结构实验之排序二:交换排序
- SDUT 3404 数据结构实验之排序七:选课名单
- 数据结构实验之排序六:希尔排序
- SDUT 3401 数据结构实验之排序四:寻找大富翁
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- sdut 3404 数据结构实验之排序七:选课名单
- (模板题)sdut 3402 数据结构实验之排序五:归并求逆序数(归并排序)