heapsort.cpp

来自「排序算法的内部复杂度分析,有八个算法,有时间和空间的分析,比较完整」· C++ 代码 · 共 34 行

CPP
34
字号

	void heapshift(int items[],int first,int last)
{	
		int j,p,t;
	    p=first;	 
 	    t=items[p];	 
        for(j=2*p;j<=last;j=j*2)
		{
			if(j<last && items[j]<items[j+1]) j++;  
			if(t>items[j]) break;
			items[p]=items[j];
			heapsortrecord=1;
			recordin();
			p=j;
		}
	     items[p]=t;
	return;
}

void heapsort(int items[],int count)
{
	int i;
	int temp;
	for(i=count/2;i>=1;i--)
	 	heapshift(items,i,count);
	for(i=count;i>0;i--)
	{   
		temp=items[1];
		items[1]=items[i];
		items[i]=temp;
		heapshift(items,1,i-1);
	}
}

⌨️ 快捷键说明

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