码迷,mamicode.com
首页 > 编程语言 > 详细

算法---快速排序

时间:2018-04-09 13:19:13      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:imp   count   int end   快速排序   .com   this   htm   排序   序列   

思路源自于: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);
}
}

算法---快速排序

标签:imp   count   int end   快速排序   .com   this   htm   排序   序列   

原文地址:https://www.cnblogs.com/gson-and-nana/p/8758911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!