快排的简介

一、基本背景:

计算机领域的爵士——托尼·霍尔于1960年发布了使他闻名于世的快速排序,这个算法也是当今世界上使用最广泛的算法之一。

它采用了一种分治的策略,通常称其为分治法。

二、主要思想:

1.先从数组中取出一个数作为基准数。

2.分区操作,比这个数大的放在它的右边,小于等于这个数的放在它的左边。

3.对左右区间重复第二步操作,直到各区间只有一个数。

三、核心代码:

1. 将基准数放到合适位置

public int rightPosition(int [ ] arr ,int L,int R){

int  i  =  L;

int  j  =  R;

int  X = arr [ L] ;

while( i < j ) {

while(i < j && arr [ j ] >= X){

j--;

}

if(i < j ) {

arr[ i ] = arr [ j ];

i++;

}

while(i < j && arr [ i ] <X) {

i++;

}

if(i < j) {

arr[ j ] = arr [ i ];

}

}

arr [ i ]  =  X;

return i;

}

2.完整代码

递归调用一下上面的代码即可!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值