public int[] fastSort(int[] arr,int left,int right){ web
if(left < right){ 算法
int s = arr[left]; 數組
int i = left; spa
int j = right + 1; code
while(true){ orm
//向右找大於s的元素的索引 blog
while(i+1 < arr.length && arr[++i] < s); 排序
//向左找小於s的元素的索引 遞歸
while(j-1 > -1 && arr[--j] > s); 索引
//若是i >= j 推出循環
if(i >= j){
break;
}else{
//教化i和j位置的元素
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
arr[left] = arr[j];
arr[j] = s;
//對左面進行遞歸
fastSort(arr,left,j-1);
//對右面進行遞歸
fastSort(arr,j+1,right);
}
return arr;
}