标签:pre baidu gap color [1] tar blank size alt
描述
编程实现希尔排序算法,按照非递减排序,测试数据为整数。
input
第一行是待排序数据元素的个数n;
第二行是待排序的数据元素。
output
一趟希尔排序后的结果。
样例输入
样例输出
4 20 18 12 22 50 36 41 19 23
#include<iostream>
#include<algorithm>
using
namespace
std;
#define maxsize 1000
void
shellSort(
int
*a,
int
n)
{
int
i,j,gap;
//for(gap=n/2;gap>0;gap/=2)
for
(gap=n/2;gap==n/2;gap/=2)
{
for
(i=gap;i<n;i++)
{
for
(j=i-gap;j>=0&&a[j]>a[j+gap];j-=gap)
{
swap(a[j],a[j+gap]);
}
}
}
}
int
main()
{
int
n;
cin>>n;
int
a[maxsize];
for
(
int
i=0;i<n;i++)
{
cin>>a[i];
}
shellSort(a,n);
for
(
int
i=0;i<n;i++)
{
cout<<a[i]<<
" "
;
}
return
0;
}
标签:pre baidu gap color [1] tar blank size alt
原文地址:http://www.cnblogs.com/swust-wangyf/p/6749409.html