shell.cpp

来自「Numerical recipes in C++」· C++ 代码 · 共 27 行

CPP
27
字号
#include "nr.h"

void NR::shell(const int m, Vec_IO_DP &a)
{
	int i,j,inc;
	DP v;

	inc=1;
	do {
		inc *= 3;
		inc++;
	} while (inc <= m);
	do {
		inc /= 3;
		for (i=inc;i<m;i++) {
			v=a[i];
			j=i;
			while (a[j-inc] > v) {
				a[j]=a[j-inc];
				j -= inc;
				if (j < inc) break;
			}
			a[j]=v;
		}
	} while (inc > 1);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?