0
我Rcpp
使用recursive quick
排序算法與此代碼:非遞歸的快速排序在RCPP
void Quick(NumericVector arr,int left,int right) {
int i=left;int j=right;
double tmp;
double pivot=arr[(left+right)/2];
while(i<=j){
while(arr[i]<pivot)
i++;
while(arr[j]>pivot)
j--;
if(i<=j){
tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
i++;
j--;
}
}
if(left<j)
Quick(arr,left,j);
if(i<right)
Quick(arr,i,right);
}
// [[Rcpp::export]]
NumericVector sort_quick(NumericVector A) {
NumericVector tmp=clone(A);
Quick(tmp,0,tmp.size()-1);
return tmp;
}
我怎樣才能得到一個iterative
進程加快的代碼?
我試過這個代碼,它的工作。時間跑步沒有區別! –