Java:快速排序(單指針)

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;
	}
}
相關文章
相關標籤/搜索