希尔排序 可运行代码
#include <iostream>
using namespace std;
void XierSort(int r[], int n)
{
for (int d = n / 2; d >= 1; d /= 2)
{
int j = 0;
for (int i = d + 1; i <= n; i++)
{
r[0] = r[i];
j = i - d;
while (j > 0 && r[0] < r[j])
{
r[j + d] = r[j];
j = j - d;
}
r[j + d] = r[0];
}
}
}
void Print(int r[], int n)
{
for (int i = 1; i <= n; i++)
{
cout << r[i] << " ";
}
}
int main()
{
int array[15];
int n;
cout << "how many numbers do you want to insert" << endl;
cin >> n;
cout << "please insert" << endl;
for (int i = 1; i <= n; i++)
{
cin >> array[i];
}
XierSort(array, n);
Print(array, n);
}
运行截图