#include<iostream>
using namespace std;
#define MAXN 20
typedef int keytype;
typedef struct {
keytype key;
}Redtype;
typedef struct {
Redtype r[MAXN + 1];
keytype length;
}Sqlist;
void ShellInsert(Sqlist& L, int dk) {
int i, j;
for (i = dk + 1; i < L.length; i++) {
if (L.r[i].key < L.r[i - dk].key) {
L.r[0] = L.r[i];
for (j = i - dk; (j > 0) && (L.r[0].key < L.r[j].key); j = j - dk) {
L.r[j + dk] = L.r[j];
}
L.r[j + dk] = L.r[0];
}
}
}
void ShellSort(Sqlist& L, int d[], int t) {
for (int i = 0; i < t; i++) {
ShellInsert(L, d[i]);
}
}
int main() {
Sqlist L;
L.length = 9;
for (int i = 1; i < L.length; i++) {
cin >> L.r[i].key;
}
L.r[0].key = L.r[1].key; //r[0] 哨兵
int d[3] = { 4,2,1 };
ShellSort(L, d, 3);
for (int i = 1; i < L.length; i++)
cout << L.r[i].key << ' ';
}
数据结构-排序-希尔排序(c++实现)
猜你喜欢
转载自blog.csdn.net/qq_43710881/article/details/105894902
今日推荐
周排行