快排写法记录

快排的精髓在于partition,这里写了容易理解的写法:

就是令最开始的index的val为哨兵元素povit,然后从两边排,左边的如果出现x>povit,则停止;右边出现y

代码很清晰:

#include 
#include 
#include  

void qsort(int* arr,int p,int r){
	if(NULL == arr || p >= r){
		return;
	}
	int x = arr[p];
	int i = p+1;
	int j = r-1;
	while(true){
		while(arr[i] < x){
			++i;
		}
		while(arr[j] > x){
			--j;
		}

		if(i


你可能感兴趣的:(C,C++,算法学习)