hpsel.c

来自「适合大型数值计算代码 现在网络上已经找不到了 购买需要20$」· C语言 代码 · 共 28 行

C
28
字号
void hpsel(unsigned long m, unsigned long n, float arr[], float heap[]){	void sort(unsigned long n, float arr[]);	void nrerror(char error_text[]);	unsigned long i,j,k;	float swap;	if (m > n/2 || m < 1) nrerror("probable misuse of hpsel");	for (i=1;i<=m;i++) heap[i]=arr[i];	sort(m,heap);	for (i=m+1;i<=n;i++) {		if (arr[i] > heap[1]) {			heap[1]=arr[i];			for (j=1;;) {				k=j << 1;				if (k > m) break;				if (k != m && heap[k] > heap[k+1]) k++;				if (heap[j] <= heap[k]) break;				swap=heap[k];				heap[k]=heap[j];				heap[j]=swap;				j=k;			}		}	}}

⌨️ 快捷键说明

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