quicksort.cpp

来自「快速排序、堆排序、冒泡排序等各种排序算法」· C++ 代码 · 共 46 行

CPP
46
字号
#include "StdAfx.h"
#include ".\quicksort.h"

CQuickSort::CQuickSort(void)
{
}

CQuickSort::~CQuickSort(void)
{
}

void CQuickSort::Sort(int* pData, int nLen)
{
	this->QuickSort(pData,0,nLen-1);
}

void CQuickSort::QuickPass(int* pData, int nStart, int nEnd, int& nMid)
{
	int nLow,nHigh;
	nLow=nStart;
	nHigh=nEnd;

	int nTemp = pData[nLow];
	while(nLow < nHigh){
		while((nLow<nHigh) &&(pData[nHigh] > nTemp))
			nHigh--;
		pData[nLow] = pData[nHigh]; 
		while((nLow<nHigh) &&(pData[nLow] <= nTemp))
			nLow++;
		pData[nHigh] = pData[nLow];
	}
	pData[nLow] = nTemp;
	nMid = nLow;
}

void CQuickSort::QuickSort(int* pData, int nStart , int nEnd)
{
	if(nStart >= nEnd)
		return;

	int nMid;
	this->QuickPass(pData,nStart,nEnd,nMid);
	this->QuickSort(pData,nStart,nMid-1);
	this->QuickSort(pData,nMid+1, nEnd);
}

⌨️ 快捷键说明

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