希尔排序(shell_sort)

#include <iostream>

using namespace std;

int a[] = { 70,30,40,10,80,20,90,100,75,60,45 };

void shell_sort(int a[], int n);
int main()
{
	cout << "Before Sort: ";
	for (int i = 0; i < 11; i++)
		cout << a[i] << " ";
	cout << endl;
	shell_sort(a, 11);
	cout << "After Sort: ";
	for (int i = 0; i < 11; i++)
		cout << a[i] << " ";
	cout << endl;
	system("pause");
}
void shell_sort(int a[], int n)
{
	int gap;
	for (gap = 3; gap > 0; gap--)
	{
		for (int i = 0; i < gap; i++)
		{
			for (int j = i + gap; j < n; j = j + gap)
			{
				if (a[j] < a[j - gap])
				{
					int temp = a[j];
					int k = j - gap;
					while (k >= 0 && a[k] > temp)
					{
						a[k + gap] = a[k];
						k = k - gap;
					}
					a[k + gap] = temp;
				}
			}
		}
	}
}

posted @   如梦山河乀  阅读(119)  评论(0)    收藏  举报
编辑推荐:
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
阅读排行:
· 7 个最近很火的开源项目「GitHub 热点速览」
· 博客园2025新款「AI繁忙」系列T恤上架
· DeepSeekV3:写代码很强了
· 记一次 .NET某固高运动卡测试 卡慢分析
· Avalonia跨平台实战(二),Avalonia相比WPF的便利合集(一)
点击右上角即可分享
微信分享提示