C++快速排序 精简版

快速排序是一种基于分治技术的重要排序算法。

下面是C++快速排序精简版。

头文件 QuickSort.h:

void Swap(int &p,int &q){
	int temp;
	temp = p;
	p = q;
	q = temp;
}

int Partition(int InputArray[],int nLow,int nHigh){
	int i = nLow,j = nHigh+1;
	int x=InputArray[i];
	while (true)
	{
		while (InputArray[++i]x);        //将 >x的元素交换到中轴右边区域 
		if (i>=j)break;
		Swap(InputArray[i],InputArray[j]);
	}
	InputArray[nLow]=InputArray[j];          //将x交换到它在排序序列中应在的位置上
 	InputArray[j]=x;
	return j;
}
	

void QuickSort(int InputArray[],int nLow,int nHigh){
	if (nLow < nHigh)
	{
		int index = Partition(InputArray,nLow,nHigh);
		QuickSort(InputArray,nLow,index-1);
		QuickSort(InputArray,index+1,nHigh);
	}
}

测试代码:

#include"QuickSort.h"
#include
using namespace std;
int main(){
	int array[11] = {15,7, 3, 19, 4, 63, 2, 99, 18, 1, 25}; 
	QuickSort(array, 0, 10);
	for(int i = 0; i < 11; i++)  
		cout << array[i] << "  ";   
    cout<





你可能感兴趣的:(算法)