推荐慕课网,刘宇波老师《算法与数据结构》
链接:http:
shellSrot 课堂笔记
#include <iostream>
using namespace std;
#include<stdio.h>
template<
typename T>
void shellSort(T arr[],
int n){
int h =
1;
while(h < n/
3)
h =
3*h +
1;
while(h >=
1){
for(
int i = h;i<n;i++){
T e = arr[i];
int j;
for(j = i;j >=h && arr[j-h] > e;j -= h)
arr[j] = arr[j-h];
arr[j] = e;
}
h /=
3;
}
}
int main(){
int arr[] = {
9,
8,
7,
6,
5,
4,
3,
2,
1};
int n =
sizeof(arr)/
sizeof(arr[
0]);
shellSort(arr,n);
for(
int i =
0;i<n;i++)
printf(
"%d ",arr[i]);
printf(
"\n");
return 0;
}