一、基本背景:
计算机领域的爵士——托尼·霍尔于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.完整代码
递归调用一下上面的代码即可!

4万+

被折叠的 条评论
为什么被折叠?



