算法(第4版) C++ 实现希尔排序(简易版)

Posted Wecccccccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法(第4版) C++ 实现希尔排序(简易版)相关的知识,希望对你有一定的参考价值。

#include <iostream>
using namespace std;

void shellsort(int *a,int n)
{
	int h = 1;
	while (h < n / 3) h = 3 * h + 1;
	while (h >= 1)
	{
		for (int i = h;i<n;i++)
			for (int j = i; j >= h && a[j] < a[j - h]; j -= h)
			{
				int t = a[j];
				a[j] = a[j - h];
				a[j - h] = t;
			}
		h = h / 3;
	}
}


int main()
{
	int a[] = { 12,42,34,21,53,52,4,523,4,213,124,2,412,3214,124,124,12 };
	shellsort(a, 17);
	for (int i = 0; i < 17; i++) cout << a[i] << " ";
	cout << endl;
	return 0;
}

测试结果:
在这里插入图片描述

以上是关于算法(第4版) C++ 实现希尔排序(简易版)的主要内容,如果未能解决你的问题,请参考以下文章

算法(第4版)-2.5 应用

算法笔记系列:希尔排序

5 行代码实现快速排序(简易版)

Java版算法思想(排序)插入&希尔&归并

Java版算法思想(排序)插入&希尔&归并

算法(第4版) C++ 插入排序的优化