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

Java:快速排序(单指针)

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

public class Quick_Sort {
private static Scanner s;
static int tmp;
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] scores = new int[10];
s = new Scanner(System.in);
for (int i=0;i<scores.length;i++){
scores[i] = s.nextInt();
}
System.out.println(partition(scores,0,scores.length));
System.out.println(Arrays.toString(quick_sort(scores,0,scores.length)));
}
public static int partition(int[] arrays,int p,int q){
int x=arrays[p];
int i=p;
int tmp;
for(int j=p+1;j<q;j++){
if (arrays[j]<=x){
i+=1;
tmp=arrays[j];
arrays[j]=arrays[i];
arrays[i]=tmp;
}
}

tmp=arrays[i];
arrays[i]=x;
arrays[p]=tmp;
return i;
}
public static int[] quick_sort(int[] arrays,int p,int q){
if(p<q){
int r=partition(arrays,p,q);
quick_sort(arrays,p,r-1);
quick_sort(arrays,r+1,q);

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