您的位置:首页 > 编程语言 > Java开发

Java:快速排序(双指针版)

2016-05-13 00:00 851 查看
[code=plain]
import java.util.Arrays;

public class qucik_sort {

public static void main(String[] args) {
// TODO Auto-generated method stub
int[] scores={5,4,6,3,7,2,8,1,9,10};
int[] scores1={4,2,3};
//System.out.println(partition(scores,0,scores.length));
System.out.println(Arrays.toString(quick_sort(scores,0,scores.length-1)));
//System.out.println(Arrays.toString(quick_sort(scores1,0,scores1.length-1)));
}
public static int partition(int[] arrays,int p,int q){
int x=arrays[p];
int i=p;
int tmp;
int j=q;
while(i <j){
while(i<j && arrays[j]>=x){
j--;}
if(i<j){
tmp=arrays[j];
arrays[j]=arrays[i];
arrays[i]=tmp;
i++;
}
while(i<j && arrays[i]<=x){
i++;}
if(i<j){
tmp=arrays[j];
arrays[j]=arrays[i];
arrays[i]=tmp;
j--;
}

}

return i;
}

public static int[] quick_sort(int[] arrays,int p,int q){
if(p<q){
int r=partition(arrays,p,q);
//System.out.println(r+Arrays.toString(arrays));
quick_sort(arrays,p,r-1);
quick_sort(arrays,r+1,q);

}
return arrays;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: