首页 > 编程知识 正文

java递归快速排序算法,快速排序算法java

时间:2023-05-04 00:51:32 阅读:164251 作者:1540

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;

返回左;

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。