/***希尔排序****/
#define N 11
#include<iostream>
using namespace std;
void BInsertSort(int a[], int len)
{
size_t dk;
for (dk = len / 2; dk > 0; dk /= 2)
{
for (size_t i = dk + 1; i != len + 1; i++)
{
for (size_t j = i - dk; j > 0; j -= dk)
{
if (a[j+dk] < a[j])
{
a[0] = a[j+dk]; //a[0]在这做临时变量
a[j+dk] = a[j];
a[j] = a[0];
}
else break;
}
}
int static count = 0;
cout << "第" << ++count << "趟:";
for (size_t i = 1; i != len + 1; i++)
cout << *(a + i) << " ";
cout << endl;
}
}
int main()
{
int a[N] = { 0 };
for (size_t i = 1; i != N; i++)
cin >> a[i];
BInsertSort(a, N - 1);
cout << "排好后结果为:" << endl;
for (size_t i = 1; i != N; i++)
cout << a[i] << " ";
return 0;
}
希尔排序
最新推荐文章于 2023-09-23 16:26:22 发布