qsort.h

来自「这算法实现了插入排序」· C头文件 代码 · 共 24 行

H
24
字号
template<class Elem,class Comp>
void qsort(Elem A[],int i,int j) {
  if(j<=1) return;
  int pivotindex=findpivot(A,i,j);
  swap(A,pivotindex,j);
  int k=partition<Elem,Comp>(A,i-1,j,A[j]);
  swap(A,k,j);
  qsort<Elem,Comp>(A,i,k-1);
  qsort<Elem,Comp>(A,k+1,j);
}
template <class Elem>
int findpiod(Elem A[],int i,int j){  
  return (i+j)/2;
}
template<class Elem,class Comp>
int partition(Elem A[],int l,int r,Elem& pivot) {
	do{
		while(Comp::lt(A[++1],pivot));
		while(r!=0)&&(Comp::gt(A[--r],pivot));
		swap(A,l,r); 
	}while(l<r);
	 swap(A,l,r);
	 return 1;
}

⌨️ 快捷键说明

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