1
template<typename T>
2
void sort_shell(T* a)
{
3
int d;
4
int i;
5
int j;
6
T temp;
7
d=N/2;
8
while(d>0)
{
9
for (i=0;i<N-d;i++)
10
{
11
j=i+d;
12
temp=a[j];
13
while((j-d)>=0 && temp<a[j-d])
{
14
a[j]=a[j-d];
15
j-=d;
16
}
17
a[j]=temp;
18
19
}
20
d=d/2;
21
}
22
}

2



3

4

5

6

7

8



9

10



11

12

13



14

15

16

17

18

19

20

21

22
