⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 heapsort.cpp

📁 快速排序、堆排序、冒泡排序等各种排序算法
💻 CPP
字号:
#include "StdAfx.h"
#include ".\heapsort.h"

CHeapSort::CHeapSort(void)
{
}

CHeapSort::~CHeapSort(void)
{
}

void CHeapSort::Sort(int* pData, int nLen)
{
	int k = nLen/2 -1;
	int i;
	int nTemp;

	for(i=k;i>=0;i--){
		this->Sift(pData,i,nLen-1);
	}
	for(i=nLen-1;i>0;i--){
		nTemp = pData[0];
		pData[0] = pData[i];
		pData[i] = nTemp;

		this->Sift(pData,0,i-1);

	}
}

void CHeapSort::Sift(int* pData, int nStart, int nEnd)
{
	int i,j;
	int x = pData[nStart];

	i=nStart;
	j= nStart*2;
	while(j<= nEnd){
		if((j<nEnd)&&(pData[j] > pData[j+1]))
			j++;

		if(x<= pData[j])
			break;
		else{
			pData[i] = pData[j];
			i=j;
			j=j*2;
		}		
	}
	pData[i] = x;
}

⌨️ 快捷键说明

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