package testSortAlgorithm;
公共类快速引导{
publicstaticvoidmain (string [ ] args ) {
int [ ] array={ 49,38,65,97,76,13,27 };
快速引导(array,0,array.length - 1 );
for(intI=0; i array.length; I ) {
system.out.println(Array[I];
}
}
/*根据数组创建数据原型,然后创建可扩展性算法。 排列{49、38、65、97、76、13、27}
*/
publicstaticvoidquicksort (int [ ] n,int left,int right ) {
int pivot;
左权限(if ) {
//以//pivot为轴心,小元素为左,大元素为右
pivot=partition(n,left,right );
//对左右数组递归调用快速排序,直到顺序完全正确
快速引导(n,left,pivot - 1 );
quicksort(n,pivot 1,right );
}
}
publicstaticintpartition (int [ ] n,int left,int right ) {
int pivotkey=n[left];
//枢轴即使选定也永远不变,最终在中间,前小后大
while(leftright ) {
wile (left right n [ right ]=pivot key )--right;
//将小于轴心的元素移动到低端。 此时,right位相当于空,等待补充低位大于pivotkey的数
n[left]=n[right];
wile(leftrightn[left]=pivotkey ) left;
//将大于轴心的要素转移到高端。 此时,left比特相当于空,等待补充高位比特比pivotkey小的数量
n[right]=n[left];
}
当left==right时,快速排序完成。 此时,left位相当于空,等待添加pivotkey
n[left]=pivotkey;
返回左;
}
}