算法---快速排序


思路源自于:http://developer.51cto.com/art/201403/430986.htm

代码如下:

public class FastSort implements Sort {

public int[] array;
public int count;

public FastSort(int[] array) {
super();
this.array = array;
}

@Override
public int[] sort() {
quickSort(array,0,array.length-1);
return array;
}

public void quickSort(int[] arr,int begin,int end){
if (end<=begin) {
return;
}
int x = arr[begin];//标尺
int p1 = begin;//顺指针
int p2 = end;//逆指针
//指针发生碰撞,循环结束,标尺就移动到正确的位置
while(!(p1==p2)){
//先从后往前,如果碰到比标尺小的 就交换
while(arr[p2]>=x && p1<p2) p2--;
if (p1<p2) {
arr[p1] = arr[p2];
arr[p2] = x;
}
//再从前往后, 碰到比标尺大的, 就交换
while(arr[p1]<=x && p1<p2) p1++;
if (p1<p2) {
arr[p2] = arr[p1];
arr[p1] = x;
}
}
//递归排序标尺之前的序列和标尺之后的序列
quickSort(arr, begin, p1-1);
quickSort(arr, p1+1, end);
}
}

优质内容筛选与推荐>>
1、SpringBoot整合CXF框架开发
2、javaScipt 模拟鼠标点 a 标签
3、shell基础
4、认识JPA以及如何使用JPA(1)
5、MFC 屏幕截图(libjpeg bmp转jpg)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号