算法題6 快速排序

public class Quicksort {

	
	public static void main(String[] args) {
		int[] ints= {12,3,6,7,8,5,8,5,9,56,89,4678,46,45};
		 
		 sort(ints,0,ints.length-1);
		for (int k = 0; k < ints.length; k++) {
			
			System.out.print(ints[k]+",");
		}
	}
	
	static void sort(int[] ints ,int s ,int e) {
		if(s<e) {
			int index=sortUnit(ints, s, e);
			sort(ints,s,index-1);
			sort(ints,index+1,e);
		}
		
	}
	
	static int  sortUnit(int[] ints ,int s ,int e) {
		int i = s;
		int j = e;
		int num = ints[s];
		while(i<j){
			
			while(i<j) {
				if(ints[j]<num) {
					ints[i]=ints[j];
					break;
				}
				j--;
			}
			while(i<j) {
				if(ints[i]>=num) {
					ints[j]=ints[i];
					break;
				}
				i++;
			}
			
		}
		ints[i]=num;
		return i;
		
	}
	
	
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章